diff --git a/src/client/App.tsx b/src/client/App.tsx index 33ddb41..5fd06e8 100644 --- a/src/client/App.tsx +++ b/src/client/App.tsx @@ -307,6 +307,10 @@ function PrivateApp() { [], ); + const handleExcalidrawAPI = useCallback((api: ExcalidrawImperativeAPI) => { + excalidrawApiRef.current = api; + }, []); + return (
{toastMessage && ( @@ -332,9 +336,7 @@ function PrivateApp() { onSceneChange={handleSceneChange} onSelectionStateChange={handleCodeBlockSelectionChange} onEditorActivity={scheduleThemeTokenSync} - onExcalidrawAPI={(api) => { - excalidrawApiRef.current = api; - }} + onExcalidrawAPI={handleExcalidrawAPI} renderEmbeddable={renderCodeBlockEmbeddable} /> { let cancelled = false; - void renderHighlightedCodeBlockHtml(draft.code, draft.language) - .then((nextHtml) => { - if (!cancelled) { - setHtml(nextHtml); - } - }) - .catch(() => { - if (!cancelled) { - setHtml(null); - } - }); + + const timeoutId = setTimeout(() => { + void renderHighlightedCodeBlockHtml(draft.code, draft.language) + .then((nextHtml) => { + if (!cancelled) { + setHtml(nextHtml); + } + }) + .catch(() => { + if (!cancelled) { + setHtml(null); + } + }); + }, 100); return () => { cancelled = true; + clearTimeout(timeoutId); }; }, [draft.code, draft.language]);