diff --git a/src/container/SelectionPane/SelectionPane.vue b/src/container/SelectionPane/SelectionPane.vue index ec6d8d75..a10c88f8 100644 --- a/src/container/SelectionPane/SelectionPane.vue +++ b/src/container/SelectionPane/SelectionPane.vue @@ -4,15 +4,12 @@ import { useStore, useKeyPress } from '../../composables' import { getConnectedEdges } from '../../utils' import NodesSelection from '../../components/NodesSelection/NodesSelection.vue' import UserSelection from '../../components/UserSelection/UserSelection.vue' -import NodeRenderer from '../NodeRenderer/NodeRenderer.vue' -import EdgeRenderer from '../EdgeRenderer/EdgeRenderer.vue' const store = useStore() -const userSelection = ref(false) const onClick = (event: MouseEvent) => { store.hooks.paneClick.trigger(event) - store.unsetNodesSelection() + store.nodesSelectionActive = false store.resetSelectedElements() } @@ -22,15 +19,15 @@ const onWheel = (event: WheelEvent) => store.hooks.paneScroll.trigger(event) onMounted(() => { useKeyPress(store.deleteKeyCode, (keyPressed) => { - if (keyPressed && store.selectedElements) { - const connectedEdges = getConnectedEdges(store.getSelectedNodes, store.getEdges) - const elementsToRemove = [...store.selectedElements, ...connectedEdges].reduce( + if (keyPressed && (store.selectedNodes || store.selectedEdges)) { + const connectedEdges = (store.selectedNodes && getConnectedEdges(store.selectedNodes, store.getEdges)) ?? [] + const elementsToRemove = [...(store.selectedNodes ?? []), ...(store.selectedEdges ?? []), ...connectedEdges].reduce( (res, item) => res.set(item.id, item), new Map(), ) store.hooks.elementsRemove.trigger(Array.from(elementsToRemove.values())) - store.unsetNodesSelection() + store.nodesSelectionActive = false store.resetSelectedElements() } }) @@ -40,7 +37,8 @@ onMounted(() => { }) useKeyPress(store.selectionKeyCode, (keyPressed) => { - userSelection.value = keyPressed && (store.selectionActive || store.elementsSelectable) + store.selectionActive = + store.selectionActive === true && keyPressed ? true : keyPressed && (store.selectionActive || store.elementsSelectable) }) }) @@ -51,28 +49,17 @@ export default { }