From 8fca15e9bab12a02d98187fc2b7d18cec5bf06b9 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 7 Mar 2026 11:43:20 +0800 Subject: [PATCH] :recycle: https://github.com/siyuan-note/siyuan/pull/15159 --- app/src/menus/Menu.ts | 3 --- app/src/menus/workspace.ts | 16 +++++++++------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/menus/Menu.ts b/app/src/menus/Menu.ts index 5c5736e9d..fa0797f17 100644 --- a/app/src/menus/Menu.ts +++ b/app/src/menus/Menu.ts @@ -61,9 +61,6 @@ export class Menu { } public showSubMenu(subMenuElement: HTMLElement) { - subMenuElement.querySelectorAll(".b3-list-item--focus").forEach((item) => { - item.classList.remove("b3-list-item--focus"); - }); const itemRect = subMenuElement.parentElement.getBoundingClientRect(); subMenuElement.style.top = (itemRect.top - 8) + "px"; subMenuElement.style.left = (itemRect.right + 8) + "px"; diff --git a/app/src/menus/workspace.ts b/app/src/menus/workspace.ts index f2af7aaa6..f7686244b 100644 --- a/app/src/menus/workspace.ts +++ b/app/src/menus/workspace.ts @@ -351,13 +351,13 @@ export const workspaceMenu = (app: App, rect: DOMRect) => { label: `
`, bind(menuElement) { - const genListHTML = () => { + const genListHTML = (isInit = false) => { let html = ""; window.siyuan.storage[Constants.LOCAL_LAYOUTS].sort((a: ISaveLayout, b: ISaveLayout) => { return a.name.localeCompare(b.name, undefined, {numeric: true}); }).forEach((item: ISaveLayout) => { if (inputElement.value === "" || item.name.toLowerCase().indexOf(inputElement.value.toLowerCase()) > -1) { - html += `
+ html += `
${item.name}
${item.time ? dayjs(item.time).format("YYYY-MM-DD HH:mm") : ""} @@ -371,8 +371,12 @@ export const workspaceMenu = (app: App, rect: DOMRect) => { const inputElement = menuElement.querySelector(".b3-text-field") as HTMLInputElement; const listElement = menuElement.querySelector(".b3-list"); inputElement.addEventListener("focus", () => { - const listItemElement = inputElement.nextElementSibling?.querySelector(".b3-list-item"); - listItemElement?.classList.add("b3-list-item--focus"); + if (!menuElement.querySelector(".b3-list-item--focus")) { + menuElement.querySelector(".b3-list-item")?.classList.add("b3-list-item--focus"); + } + }); + inputElement.addEventListener("blur", () => { + menuElement.querySelector(".b3-list-item--focus")?.classList.remove("b3-list-item--focus"); }); inputElement.addEventListener("keydown", (event) => { event.stopPropagation(); @@ -398,8 +402,6 @@ export const workspaceMenu = (app: App, rect: DOMRect) => { } event.stopPropagation(); listElement.innerHTML = genListHTML(); - const listItemElement = inputElement.nextElementSibling?.querySelector(".b3-list-item"); - listItemElement?.classList.add("b3-list-item--focus"); }); listElement.addEventListener("click", (event: MouseEvent) => { if (window.siyuan.config.readonly) { @@ -438,7 +440,7 @@ export const workspaceMenu = (app: App, rect: DOMRect) => { event.stopPropagation(); } }); - listElement.innerHTML = genListHTML(); + listElement.innerHTML = genListHTML(true); } }); }