Merge pull request #5529 from xyflow/fix-svelte-selection

Fix svelte selection
This commit is contained in:
Moritz Klack
2025-10-01 11:47:16 +02:00
committed by GitHub
2 changed files with 8 additions and 7 deletions

View File

@@ -0,0 +1,5 @@
---
'@xyflow/svelte': patch
---
Fix selected set to false on every node and edge eagerly

View File

@@ -235,12 +235,8 @@ export function createStore<NodeType extends Node = Node, EdgeType extends Edge
const nodeWillBeSelected = ids.includes(node.id);
const selected = isMultiSelection ? node.selected || nodeWillBeSelected : nodeWillBeSelected;
if (node.selected !== selected) {
// we need to mutate the node here in order to have the correct selected state in the drag handler
const internalNode = store.nodeLookup.get(node.id);
if (internalNode) internalNode.selected = selected;
node.selected = selected;
return { ...node };
if (!!node.selected !== selected) {
return { ...node, selected };
}
return node;
});
@@ -257,7 +253,7 @@ export function createStore<NodeType extends Node = Node, EdgeType extends Edge
const edgeWillBeSelected = ids.includes(edge.id);
const selected = isMultiSelection ? edge.selected || edgeWillBeSelected : edgeWillBeSelected;
if (edge.selected !== selected) {
if (!!edge.selected !== selected) {
return { ...edge, selected };
}
return edge;