fix edge selection: consistent behaviour with node selection closes

This commit is contained in:
moklick
2023-09-14 18:12:40 +02:00
parent 961d1295b4
commit 43a3755fd9
2 changed files with 14 additions and 4 deletions
@@ -82,15 +82,25 @@ export default (EdgeComponent: ComponentType<EdgeProps>) => {
}
const onEdgeClick = (event: React.MouseEvent<SVGGElement, MouseEvent>): void => {
const { edges, addSelectedEdges } = store.getState();
const { edges, addSelectedEdges, unselectNodesAndEdges, multiSelectionActive } = store.getState();
const edge = edges.find((e) => e.id === id);
if (!edge) {
return;
}
if (isSelectable) {
store.setState({ nodesSelectionActive: false });
addSelectedEdges([id]);
if (edge.selected && multiSelectionActive) {
unselectNodesAndEdges({ nodes: [], edges: [edge] });
edgeRef.current?.blur();
} else {
addSelectedEdges([id]);
}
}
if (onClick) {
const edge = edges.find((e) => e.id === id)!;
onClick(event, edge);
}
};
+1 -1
View File
@@ -48,7 +48,7 @@ export function handleNodeClick({
if (!node.selected) {
addSelectedNodes([id]);
} else if (unselect || (node.selected && multiSelectionActive)) {
unselectNodesAndEdges({ nodes: [node] });
unselectNodesAndEdges({ nodes: [node], edges: [] });
requestAnimationFrame(() => nodeRef?.current?.blur());
}