From f293fa5d267ed2d77361fc23e84c9517d99056bf Mon Sep 17 00:00:00 2001 From: Vanessa Date: Mon, 17 Nov 2025 21:35:15 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/pull/16360 --- app/src/editor/util.ts | 2 +- app/src/layout/dock/Outline.ts | 33 +++++++++++++++++---------------- app/src/layout/dock/index.ts | 3 --- 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/app/src/editor/util.ts b/app/src/editor/util.ts index b64821360..0d5206939 100644 --- a/app/src/editor/util.ts +++ b/app/src/editor/util.ts @@ -617,7 +617,7 @@ export const updateOutline = (models: IModels, protyle: IProtyle, reload = false item.isPreview = !protyle.preview.element.classList.contains("fn__none"); item.update(response, blockId); if (protyle) { - item.updateDocTitle(protyle.background.ial, response.data?.length); + item.updateDocTitle(protyle.background.ial, response.data?.length || 0); if (getSelection().rangeCount > 0) { const startContainer = getSelection().getRangeAt(0).startContainer; if (protyle.wysiwyg.element.contains(startContainer)) { diff --git a/app/src/layout/dock/Outline.ts b/app/src/layout/dock/Outline.ts index fb7b87aaa..9fc1f2b26 100644 --- a/app/src/layout/dock/Outline.ts +++ b/app/src/layout/dock/Outline.ts @@ -70,7 +70,7 @@ export class Outline extends Model { this.updateDocTitle({ title: data.data.title, icon: Constants.ZWSP - }); + }, -1); } break; case "unmount": @@ -331,6 +331,7 @@ export class Outline extends Model { preview: this.isPreview }, response => { this.update(response); + this.updateDocTitle((options.tab.model as Editor)?.editor.protyle?.background?.ial, response.data?.length || 0); }); } @@ -478,30 +479,30 @@ export class Outline extends Model { public updateDocTitle(ial?: IObject, count?: number) { const docTitleElement = this.headerElement.nextElementSibling as HTMLElement; if (this.type === "pin") { + if (!ial && typeof count === "undefined") { + docTitleElement.classList.add("fn__none"); + return; + } if (ial) { let iconHTML = `${unicode2Emoji(ial.icon || window.siyuan.storage[Constants.LOCAL_IMAGES].file, "b3-list-item__graphic", true)}`; if (ial.icon === Constants.ZWSP && docTitleElement.firstElementChild) { iconHTML = docTitleElement.firstElementChild.outerHTML; } - docTitleElement.innerHTML = `${iconHTML}${escapeHtml(ial.title)}`; + docTitleElement.innerHTML = `${iconHTML}${escapeHtml(ial.title)}${docTitleElement.querySelector(".counter")?.outerHTML || ""}`; docTitleElement.setAttribute("title", ial.title); docTitleElement.classList.remove("fn__none"); - } else if (count === undefined) { - docTitleElement.classList.add("fn__none"); } - if (count !== undefined && docTitleElement) { - const textElement = docTitleElement.querySelector(".b3-list-item__text"); - if (textElement) { - const counterElement = docTitleElement.querySelector(".counter") as HTMLElement; - if (count > 0) { - if (counterElement) { - counterElement.textContent = count.toString(); - } else { - textElement.insertAdjacentHTML("afterend", `${count.toString()}`); - } + // count 为 -1 时,不对数量进行更新 + if (typeof count === "number" && count !== -1) { + const counterElement = docTitleElement.querySelector(".counter") as HTMLElement; + if (count > 0) { + if (counterElement) { + counterElement.textContent = count.toString(); } else { - counterElement?.remove(); + docTitleElement.insertAdjacentHTML("beforeend", `${count.toString()}`); } + } else { + counterElement?.remove(); } } } else { @@ -546,6 +547,7 @@ export class Outline extends Model { return; } this.update(response); + this.updateDocTitle(null, response.data?.length || 0); // https://github.com/siyuan-note/siyuan/issues/8372 if (getSelection().rangeCount > 0) { const blockElement = hasClosestBlock(getSelection().getRangeAt(0).startContainer); @@ -643,7 +645,6 @@ export class Outline extends Model { this.blockId = callbackId; } this.tree.updateData(data.data); - this.updateDocTitle(undefined, data.data?.length); if (this.isPreview) { this.tree.element.querySelectorAll(".popover__block").forEach(item => { diff --git a/app/src/layout/dock/index.ts b/app/src/layout/dock/index.ts index 8c739bbfe..db7038c72 100644 --- a/app/src/layout/dock/index.ts +++ b/app/src/layout/dock/index.ts @@ -613,9 +613,6 @@ export class Dock { blockId: editor?.protyle?.block?.rootID, isPreview: editor?.protyle?.preview ? !editor.protyle.preview.element.classList.contains("fn__none") : false }); - if (editor?.protyle?.title?.editElement) { - outline.updateDocTitle(editor.protyle?.background?.ial); - } tab.addModel(outline); } });