From c3104f1fbba19ed68dfd73cd7607dcd0ee05129b Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 23 Jan 2024 18:16:05 +0100 Subject: [PATCH] refactored updateNodePositions in svelte --- packages/svelte/src/lib/store/index.ts | 34 +++++++++++--------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/packages/svelte/src/lib/store/index.ts b/packages/svelte/src/lib/store/index.ts index 91160860..1cdc8904 100644 --- a/packages/svelte/src/lib/store/index.ts +++ b/packages/svelte/src/lib/store/index.ts @@ -63,29 +63,23 @@ export function createStore({ store.edges.set(addEdgeUtil(edgeParams, edges)); } - const updateNodePositions: UpdateNodePositions = (nodeDragItems, dragging = false) => { - store.nodes.update((nds) => { - return nds.map((node) => { - const nodeDragItem = (nodeDragItems as Array).find( - (ndi) => ndi.id === node.id - ); + const updateNodePositions: UpdateNodePositions = (nodeDragItems, _, dragging = false) => { + const nodeLookup = get(store.nodeLookup); - if (nodeDragItem) { - return { - ...node, - dragging, - position: nodeDragItem.position, - computed: { - ...node.computed, - positionAbsolute: nodeDragItem.computed?.positionAbsolute - }, - [internalsSymbol]: node[internalsSymbol] - }; - } + nodeDragItems.forEach((nodeDragItem) => { + const node = nodeLookup.get(nodeDragItem.id); - return node; - }); + if (node) { + node.position = nodeDragItem.position; + node.dragging = dragging; + node.computed = { + ...node.computed, + positionAbsolute: nodeDragItem.computed?.positionAbsolute + }; + } }); + + store.nodes.set(get(store.nodes)); }; function updateNodeDimensions(updates: Map) {