diff --git a/app/src/constants.ts b/app/src/constants.ts index a18f11d79..47a929a3b 100644 --- a/app/src/constants.ts +++ b/app/src/constants.ts @@ -339,6 +339,7 @@ export abstract class Constants { `; public static readonly SIYUAN_IMAGE_FILE: string = "1f4c4"; public static readonly SIYUAN_IMAGE_NOTE: string = "1f5c3"; + public static readonly SIYUAN_IMAGE_FOLDER: string = "1f4d1"; // assets public static readonly SIYUAN_ASSETS_IMAGE: string[] = [".apng", ".ico", ".cur", ".jpg", ".jpe", ".jpeg", ".jfif", ".pjp", ".pjpeg", ".png", ".gif", ".webp", ".bmp", ".svg"]; diff --git a/app/src/emoji/index.ts b/app/src/emoji/index.ts index a31e81b8d..d18ae9894 100644 --- a/app/src/emoji/index.ts +++ b/app/src/emoji/index.ts @@ -414,7 +414,7 @@ export const updateFileTreeEmoji = (unicode: string, id: string, icon = "iconFil } } if (emojiElement) { - emojiElement.innerHTML = unicode2Emoji(unicode || (icon === "iconFile" ? Constants.SIYUAN_IMAGE_FILE : Constants.SIYUAN_IMAGE_NOTE)); + emojiElement.innerHTML = unicode2Emoji(unicode || (icon === "iconFile" ? (emojiElement.previousElementSibling.classList.contains("fn__hidden") ? Constants.SIYUAN_IMAGE_FILE : Constants.SIYUAN_IMAGE_FOLDER) : Constants.SIYUAN_IMAGE_NOTE)); } if (icon !== "iconFile") { setNoteBook(); diff --git a/app/src/layout/dock/Files.ts b/app/src/layout/dock/Files.ts index bf3cf1dc6..356bcc62d 100644 --- a/app/src/layout/dock/Files.ts +++ b/app/src/layout/dock/Files.ts @@ -550,6 +550,10 @@ export class Files extends Model { if (targetElement) { targetElement.querySelector(".b3-list-item__arrow").classList.remove("b3-list-item__arrow--open"); targetElement.querySelector(".b3-list-item__toggle").classList.remove("fn__hidden"); + const emojiElement = targetElement.querySelector(".b3-list-item__icon"); + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FILE)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER) + } if (targetElement.nextElementSibling && targetElement.nextElementSibling.tagName === "UL") { targetElement.nextElementSibling.remove(); } @@ -593,6 +597,10 @@ export class Files extends Model { const iconElement = parentElement.querySelector("svg"); iconElement.classList.remove("b3-list-item__arrow--open"); iconElement.parentElement.classList.add("fn__hidden"); + const emojiElement = iconElement.parentElement.nextElementSibling; + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FILE); + } } targetElement.parentElement.remove(); } else { @@ -667,6 +675,10 @@ export class Files extends Model { if (sourceElement.parentElement.previousElementSibling) { sourceElement.parentElement.previousElementSibling.querySelector(".b3-list-item__toggle").classList.add("fn__hidden"); sourceElement.parentElement.previousElementSibling.querySelector(".b3-list-item__arrow").classList.remove("b3-list-item__arrow--open"); + const emojiElement = sourceElement.parentElement.previousElementSibling.querySelector(".b3-list-item__icon"); + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FILE); + } } sourceElement.parentElement.remove(); } else { @@ -677,6 +689,10 @@ export class Files extends Model { // 更新移动到的新文件夹 if (newElement) { newElement.querySelector(".b3-list-item__toggle").classList.remove("fn__hidden"); + const emojiElement = newElement.querySelector(".b3-list-item__icon"); + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FILE)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER); + } const arrowElement = newElement.querySelector(".b3-list-item__arrow"); if (arrowElement.classList.contains("b3-list-item__arrow--open")) { arrowElement.classList.remove("b3-list-item__arrow--open"); @@ -831,7 +847,7 @@ class="b3-list-item b3-list-item--hide-action" data-path="${item.path}"> - ${unicode2Emoji(item.icon || Constants.SIYUAN_IMAGE_FILE)} + ${unicode2Emoji(item.icon || (item.subFileCount === 0 ? Constants.SIYUAN_IMAGE_FILE : Constants.SIYUAN_IMAGE_FOLDER))} ${getDisplayName(item.name, true, true)} diff --git a/app/src/mobile/util/MobileFiles.ts b/app/src/mobile/util/MobileFiles.ts index 5d4d14b45..fae7f3f86 100644 --- a/app/src/mobile/util/MobileFiles.ts +++ b/app/src/mobile/util/MobileFiles.ts @@ -383,6 +383,10 @@ export class MobileFiles extends Model { if (sourceElement.parentElement.previousElementSibling) { sourceElement.parentElement.previousElementSibling.querySelector(".b3-list-item__toggle").classList.add("fn__hidden"); sourceElement.parentElement.previousElementSibling.querySelector(".b3-list-item__arrow").classList.remove("b3-list-item__arrow--open"); + const emojiElement = sourceElement.parentElement.previousElementSibling.querySelector(".b3-list-item__icon"); + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FILE); + } } sourceElement.parentElement.remove(); } else { @@ -392,6 +396,10 @@ export class MobileFiles extends Model { const newElement = this.element.querySelector(`[data-url="${data.toNotebook}"] li[data-path="${data.toPath}"]`) as HTMLElement; // 重新展开移动到的新文件夹 if (newElement) { + const emojiElement = newElement.querySelector(".b3-list-item__icon"); + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FILE)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER); + } newElement.querySelector(".b3-list-item__toggle").classList.remove("fn__hidden"); newElement.querySelector(".b3-list-item__arrow").classList.remove("b3-list-item__arrow--open"); if (newElement.nextElementSibling && newElement.nextElementSibling.tagName === "UL") { @@ -428,6 +436,10 @@ export class MobileFiles extends Model { if (targetElement) { targetElement.querySelector(".b3-list-item__arrow").classList.remove("b3-list-item__arrow--open"); targetElement.querySelector(".b3-list-item__toggle").classList.remove("fn__hidden"); + const emojiElement = targetElement.querySelector(".b3-list-item__icon"); + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FILE)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER) + } if (targetElement.nextElementSibling && targetElement.nextElementSibling.tagName === "UL") { targetElement.nextElementSibling.remove(); } @@ -478,6 +490,10 @@ export class MobileFiles extends Model { const iconElement = parentElement.querySelector("svg"); iconElement.classList.remove("b3-list-item__arrow--open"); iconElement.parentElement.classList.add("fn__hidden"); + const emojiElement = iconElement.parentElement.nextElementSibling; + if (emojiElement.innerHTML === unicode2Emoji(Constants.SIYUAN_IMAGE_FOLDER)) { + emojiElement.innerHTML = unicode2Emoji(Constants.SIYUAN_IMAGE_FILE); + } } targetElement.parentElement.remove(); } else { @@ -677,7 +693,7 @@ class="b3-list-item" data-path="${item.path}"> - ${unicode2Emoji(item.icon || Constants.SIYUAN_IMAGE_FILE)} + ${unicode2Emoji(item.icon || (item.subFileCount === 0 ? Constants.SIYUAN_IMAGE_FILE : Constants.SIYUAN_IMAGE_FOLDER))} ${getDisplayName(item.name, true, true)}