Browse Source

:art: https://github.com/siyuan-note/siyuan/issues/10550

Vanessa 1 year ago
parent
commit
d052c7a7aa
1 changed files with 13 additions and 15 deletions
  1. 13 15
      app/src/protyle/render/av/render.ts

+ 13 - 15
app/src/protyle/render/av/render.ts

@@ -307,22 +307,10 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value)}</div>`;
                     } else {
                     } else {
                         viewsElement.classList.remove("av__views--show");
                         viewsElement.classList.remove("av__views--show");
                     }
                     }
+                    updateSearch(e, protyle)
                 });
                 });
-                searchInputElement.addEventListener("keydown", (event: KeyboardEvent) => {
-                    if (event.isComposing) {
-                        return;
-                    }
-                    if (event.key === "Enter") {
-                        e.removeAttribute("data-render");
-                        avRender(e, protyle)
-                        event.preventDefault();
-                    }
-                });
-                searchInputElement.addEventListener("compositionend", (event: KeyboardEvent) => {
-                    if (event.key === "Enter") {
-                        // todo
-                        event.preventDefault();
-                    }
+                searchInputElement.addEventListener("compositionend", () => {
+                    updateSearch(e, protyle)
                 });
                 });
                 searchInputElement.addEventListener("blur", (event: KeyboardEvent) => {
                 searchInputElement.addEventListener("blur", (event: KeyboardEvent) => {
                     if (event.isComposing) {
                     if (event.isComposing) {
@@ -351,6 +339,16 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value)}</div>`;
     }
     }
 };
 };
 
 
+let searchTimeout: number
+
+const updateSearch = (e: HTMLElement, protyle: IProtyle) => {
+    clearTimeout(searchTimeout)
+    searchTimeout = window.setTimeout(() => {
+        e.removeAttribute("data-render");
+        avRender(e, protyle)
+    }, Constants.TIMEOUT_INPUT);
+}
+
 const refreshTimeouts: {
 const refreshTimeouts: {
     [key: string]: number;
     [key: string]: number;
 } = {};
 } = {};