From 6e526327dd0259eb096fdaf387dfc9206936c19b Mon Sep 17 00:00:00 2001 From: Faton Ramadani Date: Tue, 9 Jul 2024 13:29:17 +0200 Subject: [PATCH] fix(frontend): Reload the flowStateStore when a node is restored (undo) (#4049) --- frontend/src/lib/components/FlowBuilder.svelte | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/frontend/src/lib/components/FlowBuilder.svelte b/frontend/src/lib/components/FlowBuilder.svelte index 8849005cbc..bcad032174 100644 --- a/frontend/src/lib/components/FlowBuilder.svelte +++ b/frontend/src/lib/components/FlowBuilder.svelte @@ -1075,7 +1075,25 @@ undoProps={{ disabled: $history.index === 0 }} redoProps={{ disabled: $history.index === $history.history.length - 1 }} on:undo={() => { + const currentModules = $flowStore?.value?.modules + $flowStore = undo(history, $flowStore) + + const newModules = $flowStore?.value?.modules + const restoredModules = newModules?.filter( + (node) => !currentModules?.some((currentNode) => currentNode?.id === node?.id) + ) + + for (const mod of restoredModules) { + if (mod) { + try { + loadFlowModuleState(mod).then((state) => ($flowStateStore[mod.id] = state)) + } catch (e) { + console.error('Error loading state for restored node', e) + } + } + } + $selectedIdStore = 'Input' }} on:redo={() => {