diff --git a/ts/editable/Mathjax.svelte b/ts/editable/Mathjax.svelte index 5fe48a4db..bc8e5cf81 100644 --- a/ts/editable/Mathjax.svelte +++ b/ts/editable/Mathjax.svelte @@ -38,25 +38,31 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import { pageTheme } from "$lib/sveltelib/theme"; import { convertMathjax, unescapeSomeEntities } from "./mathjax"; + import { ChangeTimer } from "./change-timer"; export let mathjax: string; export let block: boolean; export let fontSize: number; let converted: string, title: string; + + const debouncedMathjax = writable(mathjax); + const debouncer = new ChangeTimer(); + $: debouncer.schedule(() => debouncedMathjax.set(mathjax), 500); + $: { const cache = getCache($pageTheme.isDark, fontSize); - const entry = cache.get(mathjax); + const entry = cache.get($debouncedMathjax); if (entry) { [converted, title] = entry; } else { const entry = convertMathjax( - unescapeSomeEntities(mathjax), + unescapeSomeEntities($debouncedMathjax), $pageTheme.isDark, fontSize, ); [converted, title] = entry; - cache.set(mathjax, entry); + cache.set($debouncedMathjax, entry); } } $: empty = title === "MathJax"; diff --git a/ts/editor/change-timer.ts b/ts/editable/change-timer.ts similarity index 100% rename from ts/editor/change-timer.ts rename to ts/editable/change-timer.ts diff --git a/ts/editor/NoteEditor.svelte b/ts/editor/NoteEditor.svelte index 02f865bb3..5134cc327 100644 --- a/ts/editor/NoteEditor.svelte +++ b/ts/editor/NoteEditor.svelte @@ -57,7 +57,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html type ImageLoadedEvent, resetIOImage, } from "../routes/image-occlusion/mask-editor"; - import { ChangeTimer } from "./change-timer"; + import { ChangeTimer } from "../editable/change-timer"; import { clearableArray } from "./destroyable"; import DuplicateLink from "./DuplicateLink.svelte"; import EditorToolbar from "./editor-toolbar";