From 60ada2fad4f779642d192cebae3838c7e3fcd96f Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Fri, 22 May 2026 14:38:51 +0000 Subject: [PATCH] fix(ResourceEditor): don't reset state when `selected` reverts to undefined (#9295) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bootstrap effect tracked `selected` via its early-return check, so any time `selected` flipped back to `undefined` it would re-run and reinitialize `states[effectiveWorkspace]` to empty — wiping user input. This happens in the React SDK consumer: reactify re-syncs all Svelte props on every React render, and since `selected` isn't passed through, `$props()` reverts it. Move the `selected !== undefined` check inside the existing `untrack` so the effect only tracks `effectiveWorkspace`. Bootstrap still runs once on mount; subsequent `selected` flips no longer retrigger it. Co-authored-by: Claude Opus 4.7 (1M context) --- frontend/src/lib/components/ResourceEditor.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/lib/components/ResourceEditor.svelte b/frontend/src/lib/components/ResourceEditor.svelte index 0b573d723c..1aa0fe851f 100644 --- a/frontend/src/lib/components/ResourceEditor.svelte +++ b/frontend/src/lib/components/ResourceEditor.svelte @@ -207,9 +207,9 @@ // Bootstrap: ensure selected is set on mount (edit or new) $effect(() => { - if (selected !== undefined) return if (!effectiveWorkspace) return untrack(() => { + if (selected !== undefined) return selected = effectiveWorkspace if (!initialPath) { // New resource