Merge pull request #5529 from xyflow/fix-svelte-selection
Fix svelte selection
This commit is contained in:
5
.changeset/early-bananas-kick.md
Normal file
5
.changeset/early-bananas-kick.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'@xyflow/svelte': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Fix selected set to false on every node and edge eagerly
|
||||||
@@ -235,12 +235,8 @@ export function createStore<NodeType extends Node = Node, EdgeType extends Edge
|
|||||||
const nodeWillBeSelected = ids.includes(node.id);
|
const nodeWillBeSelected = ids.includes(node.id);
|
||||||
const selected = isMultiSelection ? node.selected || nodeWillBeSelected : nodeWillBeSelected;
|
const selected = isMultiSelection ? node.selected || nodeWillBeSelected : nodeWillBeSelected;
|
||||||
|
|
||||||
if (node.selected !== selected) {
|
if (!!node.selected !== selected) {
|
||||||
// we need to mutate the node here in order to have the correct selected state in the drag handler
|
return { ...node, selected };
|
||||||
const internalNode = store.nodeLookup.get(node.id);
|
|
||||||
if (internalNode) internalNode.selected = selected;
|
|
||||||
node.selected = selected;
|
|
||||||
return { ...node };
|
|
||||||
}
|
}
|
||||||
return node;
|
return node;
|
||||||
});
|
});
|
||||||
@@ -257,7 +253,7 @@ export function createStore<NodeType extends Node = Node, EdgeType extends Edge
|
|||||||
const edgeWillBeSelected = ids.includes(edge.id);
|
const edgeWillBeSelected = ids.includes(edge.id);
|
||||||
const selected = isMultiSelection ? edge.selected || edgeWillBeSelected : edgeWillBeSelected;
|
const selected = isMultiSelection ? edge.selected || edgeWillBeSelected : edgeWillBeSelected;
|
||||||
|
|
||||||
if (edge.selected !== selected) {
|
if (!!edge.selected !== selected) {
|
||||||
return { ...edge, selected };
|
return { ...edge, selected };
|
||||||
}
|
}
|
||||||
return edge;
|
return edge;
|
||||||
|
|||||||
Reference in New Issue
Block a user