From 97b4cdd05c2f2c46228bd279b24e569d751937f7 Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 14 Apr 2025 13:59:12 +0200 Subject: [PATCH 1/3] refactor(selection-change): dont fire when elementsSelectable=false --- packages/react/src/components/SelectionListener/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/components/SelectionListener/index.tsx b/packages/react/src/components/SelectionListener/index.tsx index 89ed2c26..24522538 100644 --- a/packages/react/src/components/SelectionListener/index.tsx +++ b/packages/react/src/components/SelectionListener/index.tsx @@ -60,7 +60,7 @@ function SelectionListenerInner !!s.onSelectionChangeHandlers; +const changeSelector = (s: ReactFlowState) => !!s.onSelectionChangeHandlers && !!s.elementsSelectable; export function SelectionListener({ onSelectionChange, From aa555cc44edafd33baef90ac66149943156a6aaf Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 14 Apr 2025 14:03:36 +0200 Subject: [PATCH 2/3] refactor(selection-change): dont fire when elementsSelectable=false --- packages/react/src/components/SelectionListener/index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react/src/components/SelectionListener/index.tsx b/packages/react/src/components/SelectionListener/index.tsx index 24522538..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); } } @@ -60,7 +60,7 @@ function SelectionListenerInner !!s.onSelectionChangeHandlers && !!s.elementsSelectable; +const changeSelector = (s: ReactFlowState) => !!s.onSelectionChangeHandlers; export function SelectionListener({ onSelectionChange, From 78782c1696323ee9be0d38bbd807bd3fde5f549d Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 14 Apr 2025 14:22:38 +0200 Subject: [PATCH 3/3] chore(changeset): add --- .changeset/perfect-ravens-brush.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/perfect-ravens-brush.md 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