diff --git a/assets/js/hooks/Mapper/components/map/Map.tsx b/assets/js/hooks/Mapper/components/map/Map.tsx index fa1dc1b8..9e007176 100644 --- a/assets/js/hooks/Mapper/components/map/Map.tsx +++ b/assets/js/hooks/Mapper/components/map/Map.tsx @@ -119,7 +119,7 @@ const MapComp = ({ isSoftBackground, onAddSystem, }: MapCompProps) => { - const { getNode } = useReactFlow(); + const { getNode, getNodes } = useReactFlow(); const [nodes, , onNodesChange] = useNodesState>(initialNodes); const [edges, , onEdgesChange] = useEdgesState>(initialEdges); @@ -186,6 +186,12 @@ const MapComp = ({ (changes: NodeChange[]) => { const systemsIdsToRemove: string[] = []; + // prevents single node deselection on background / same node click + // allows deseletion of all nodes if multiple are currently selected + if (changes.length === 1 && changes[0].type == 'select' && changes[0].selected === false) { + changes[0].selected = getNodes().filter(node => node.selected).length === 1; + } + const nextChanges = changes.reduce((acc, change) => { if (change.type !== 'remove') { return [...acc, change];