diff --git a/.changeset/perfect-ravens-brush.md b/.changeset/perfect-ravens-brush.md new file mode 100644 index 00000000..f990a4d9 --- /dev/null +++ b/.changeset/perfect-ravens-brush.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +Do not trigger selection events if elementsSelectable=false diff --git a/packages/react/src/components/SelectionListener/index.tsx b/packages/react/src/components/SelectionListener/index.tsx index 89ed2c26..04c46416 100644 --- a/packages/react/src/components/SelectionListener/index.tsx +++ b/packages/react/src/components/SelectionListener/index.tsx @@ -19,13 +19,13 @@ const selector = (s: ReactFlowState) => { const selectedEdges = []; for (const [, node] of s.nodeLookup) { - if (node.selected) { + if (node.selected && (s.elementsSelectable || node.selectable)) { selectedNodes.push(node.internals.userNode); } } for (const [, edge] of s.edgeLookup) { - if (edge.selected) { + if (edge.selected && (s.elementsSelectable || edge.selectable)) { selectedEdges.push(edge); } }