diff --git a/packages/vue-flow/src/components/Nodes/NodeWrapper.vue b/packages/vue-flow/src/components/Nodes/NodeWrapper.vue index 52654dbd..8569699a 100644 --- a/packages/vue-flow/src/components/Nodes/NodeWrapper.vue +++ b/packages/vue-flow/src/components/Nodes/NodeWrapper.vue @@ -35,6 +35,7 @@ const { addSelectedNodes, multiSelectionActive, resetSelectedElements, + getSelectedNodes, } = $(useVueFlow()) const node = $computed(() => getNode(id)!) @@ -163,7 +164,13 @@ const onSelectNode = (event: MouseEvent) => { nodesSelectionActive: false, }) - if (!node.selected) addSelectedNodes([node]) + if (!node.selected) { + addSelectedNodes([node]) + } else if (node.selected && multiSelectionActive) { + // todo add action to unselect nodes/edges easily + getSelectedNodes.splice(getSelectedNodes.indexOf(node), 1) + node.selected = false + } } emits.nodeClick({ event, node, connectedEdges: getConnectedEdges([node], edges) }) }