diff --git a/frontend/src/lib/components/CodeEditor.svelte b/frontend/src/lib/components/CodeEditor.svelte index 23e925d..36a3bdf 100644 --- a/frontend/src/lib/components/CodeEditor.svelte +++ b/frontend/src/lib/components/CodeEditor.svelte @@ -16,8 +16,9 @@ let container: HTMLDivElement; let view: any; let ready = $state(false); + let saving = $state(false); let lastThemeDark: boolean | undefined; - let lastStorageKey = storageKey; + let lastStorageKey = $state(undefined); // Store module references after dynamic import let CM: any; @@ -26,9 +27,11 @@ function saveToStorage(value: string) { if (!storageKey) return; + saving = true; clearTimeout(saveTimeout); saveTimeout = setTimeout(() => { sessionStorage.setItem(storageKey, value); + saving = false; }, 1000); } @@ -286,22 +289,66 @@ return view?.state.doc.toString() ?? code; } -
{#if !ready}
Memuat editor...
{/if} + {#if storageKey} +
+ + {saving ? '●' : '☁'} + + Auto-save +
+ {/if}