chore(react): avoid deselection on pane click if elementsSelectable=false

This commit is contained in:
moklick
2025-04-15 08:25:01 +02:00
parent 25fe1edca8
commit f9f9e6f168
3 changed files with 22 additions and 21 deletions
@@ -19,13 +19,13 @@ const selector = (s: ReactFlowState) => {
const selectedEdges = [];
for (const [, node] of s.nodeLookup) {
if (node.selected && (s.elementsSelectable || node.selectable)) {
if (node.selected) {
selectedNodes.push(node.internals.userNode);
}
}
for (const [, edge] of s.edgeLookup) {
if (edge.selected && (s.elementsSelectable || edge.selectable)) {
if (edge.selected) {
selectedEdges.push(edge);
}
}
+5 -1
View File
@@ -297,7 +297,11 @@ const createStore = ({
get().panZoom?.setClickDistance(clickDistance);
},
resetSelectedElements: () => {
const { edges, nodes, triggerNodeChanges, triggerEdgeChanges } = get();
const { edges, nodes, triggerNodeChanges, triggerEdgeChanges, elementsSelectable } = get();
if (!elementsSelectable) {
return;
}
const nodeChanges = nodes.reduce<NodeSelectionChange[]>(
(res, node) => (node.selected ? [...res, createSelectionChange(node.id, false)] : res),