From c49ce5cbb55f8f3ad4e27f9196dfbab73aab0848 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 7 Oct 2025 14:00:28 -0700 Subject: [PATCH] feat(admin): add runes-based autosave to EssayForm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add createAutoSaveStore for edit mode - Add updatedAt tracking for conflict detection - Add hasLoaded flag to prevent autosave on initial load - Prime autosave after initial data loads - Add AutoSaveStatus indicator in header - Move draft recovery from inline to prominent banner - Only save draft on autosave failure (not every change) - Smart navigation guard (only blocks if unsaved) - Add beforeunload warning (only if unsaved changes) - Add keyboard shortcut (Cmd/Ctrl+S) - Add proper cleanup on unmount - Update clearDraft calls in restore/dismiss functions - Fix $derived syntax (use $derived.by for draftTimeText) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/lib/components/admin/EssayForm.svelte | 278 +++++++++++++++++----- 1 file changed, 223 insertions(+), 55 deletions(-) diff --git a/src/lib/components/admin/EssayForm.svelte b/src/lib/components/admin/EssayForm.svelte index 3056679..a5da324 100644 --- a/src/lib/components/admin/EssayForm.svelte +++ b/src/lib/components/admin/EssayForm.svelte @@ -1,12 +1,14 @@