diff --git a/app/src/protyle/render/av/render.ts b/app/src/protyle/render/av/render.ts index f4428fa3d..427b52254 100644 --- a/app/src/protyle/render/av/render.ts +++ b/app/src/protyle/render/av/render.ts @@ -307,22 +307,10 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value)}`; } else { 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) => { if (event.isComposing) { @@ -351,6 +339,16 @@ ${cell.color ? `color:${cell.color};` : ""}">${renderCell(cell.value)}`; } }; +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: { [key: string]: number; } = {};