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);
}
});
}