From f35fa60207c7992c4b7896732e3ffed64da2e3c6 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Tue, 7 Oct 2025 13:09:39 -0700 Subject: [PATCH] refactor(admin): only save local draft on autosave failure MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove redundant localStorage saves on every form change - Only save draft when autosave status is 'error' or 'offline' - Reduces draft recovery banner noise for successful autosaves - Navigation guard still prevents data loss when navigating away 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/lib/components/admin/ProjectForm.svelte | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/components/admin/ProjectForm.svelte b/src/lib/components/admin/ProjectForm.svelte index a3b9220..a58d77f 100644 --- a/src/lib/components/admin/ProjectForm.svelte +++ b/src/lib/components/admin/ProjectForm.svelte @@ -158,13 +158,22 @@ clearDraft(draftKey) } - // Trigger autosave and store local draft when formData changes (edit mode) + // Trigger autosave when formData changes (edit mode) $effect(() => { // Establish dependencies on fields formData; activeTab if (mode === 'edit' && hasLoaded && autoSave) { autoSave.schedule() - if (draftKey) saveDraft(draftKey, buildPayload()) + } + }) + + // Save draft only when autosave fails + $effect(() => { + if (mode === 'edit' && autoSave && draftKey) { + const status = autoSave.status + if (status === 'error' || status === 'offline') { + saveDraft(draftKey, buildPayload()) + } } })