From aee289d2853c56e135bb76d58c08b9f233aa719f Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 16 Nov 2023 11:56:48 +0100 Subject: [PATCH] fix(svelte): use correct nodes for node store sync --- packages/svelte/src/lib/store/utils.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/svelte/src/lib/store/utils.ts b/packages/svelte/src/lib/store/utils.ts index 67c6d288..a11bf1f6 100644 --- a/packages/svelte/src/lib/store/utils.ts +++ b/packages/svelte/src/lib/store/utils.ts @@ -18,8 +18,15 @@ export function syncNodeStores( ) { const nodesStoreSetter = nodesStore.set; const userNodesStoreSetter = userNodesStore.set; + const currentNodesStore = get(nodesStore); + const currentUserNodesStore = get(userNodesStore); + // depending how the user initializes the nodes, we need to decide if we want to use + // the user nodes or the internal nodes for initialization. A user can use a SvelteFlowProvider + // without providing any nodes, in that case we want to use the nodes passed by the user. + // By default we are using the store nodes, because they already have the absolute positions. + const initWithUserNodes = currentNodesStore.length === 0 && currentUserNodesStore.length > 0; - let val = get(userNodesStore); + let val = initWithUserNodes ? currentUserNodesStore : currentNodesStore; nodesStore.set(val); const _set = (nds: Node[]) => {