From c51a932eedf7eafbe3e6c56962c86d898a7a577a Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Sun, 13 Sep 2026 06:09:01 +0200 Subject: [PATCH] fix: close only the drawer opening whose draft discard was awaited Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01ViTUkt4czrvZdxdWwxqRAQ --- frontend/src/lib/components/ResourceEditorDrawer.svelte | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/lib/components/ResourceEditorDrawer.svelte b/frontend/src/lib/components/ResourceEditorDrawer.svelte index 5a3d5597df..e5a421057d 100644 --- a/frontend/src/lib/components/ResourceEditorDrawer.svelte +++ b/frontend/src/lib/components/ResourceEditorDrawer.svelte @@ -176,8 +176,12 @@ getDeployed={() => resourceEditor?.localDraftDeployed()} getCurrent={() => resourceEditor?.localDraftCurrent()} onDiscard={async () => { - // A draft-only resource is its draft: discarding it leaves nothing to show. - if (await resourceEditor?.discardLocalDraft()) drawer?.closeDrawer() + // A draft-only resource is its draft: discarding it leaves nothing to show. Close + // only the opening that asked for it — the discard is awaited, and another resource + // may have been opened over this drawer in the meantime. + const opening = session + if ((await resourceEditor?.discardLocalDraft()) && session === opening) + drawer?.closeDrawer() }} disabled={!canWriteSelected} />