From b2a1ab06108cb6489dcfa697a8519cb63253132b Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 30 Nov 2023 14:46:07 +0100 Subject: [PATCH] refactor(svelte): do not update nodes on pane click #3638 --- packages/svelte/src/lib/store/index.ts | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/svelte/src/lib/store/index.ts b/packages/svelte/src/lib/store/index.ts index ec771416..873d9b6f 100644 --- a/packages/svelte/src/lib/store/index.ts +++ b/packages/svelte/src/lib/store/index.ts @@ -192,15 +192,20 @@ export function createStore({ } function unselectNodesAndEdges(params?: { nodes?: Node[]; edges?: Edge[] }) { - const nodeIdsToUnselect = (params?.nodes ? params.nodes : get(store.nodes)).map( - (item) => item.id - ); - const edgeIdsToUnselect = (params?.edges ? params.edges : get(store.edges)).map( - (item) => item.id - ); + const selectedNodeIds = (params?.nodes ? params.nodes : get(store.nodes)) + .filter((node) => node.selected) + .map((node) => node.id); + const selectedEdgeIds = (params?.edges ? params.edges : get(store.edges)) + .filter((edge) => edge.selected) + .map((edge) => edge.id); - store.nodes.update((ns) => ns.map(resetSelectedItem(nodeIdsToUnselect))); - store.edges.update((es) => es.map(resetSelectedItem(edgeIdsToUnselect))); + if (selectedNodeIds.length) { + store.nodes.update((ns) => ns.map(resetSelectedItem(selectedNodeIds))); + } + + if (selectedEdgeIds.length) { + store.edges.update((es) => es.map(resetSelectedItem(selectedEdgeIds))); + } } store.deleteKeyPressed.subscribe((deleteKeyPressed) => {