From 0ef3ce81a848b84a4b38d92200635b31edbe11da Mon Sep 17 00:00:00 2001 From: Furkan Kalaycioglu Date: Tue, 10 May 2022 22:28:28 +0300 Subject: [PATCH] Fix onClick handler for draggable nodes --- src/components/Nodes/wrapNode.tsx | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/components/Nodes/wrapNode.tsx b/src/components/Nodes/wrapNode.tsx index ab0e73bb..026d09d5 100644 --- a/src/components/Nodes/wrapNode.tsx +++ b/src/components/Nodes/wrapNode.tsx @@ -58,6 +58,7 @@ export default (NodeComponent: ComponentType) => { noPanClassName, noDragClassName, }: WrapNodeProps) => { + const [dragging, setDragging] = useState(false); const store = useStoreApi(); const { addSelectedNodes, unselectNodesAndEdges, updateNodePosition, updateNodeDimensions } = useStore( selector, @@ -86,22 +87,20 @@ export default (NodeComponent: ComponentType) => { const onSelectNodeHandler = useCallback( (event: MouseEvent) => { - if (!isDraggable) { - if (isSelectable) { - store.setState({ nodesSelectionActive: false }); + if (isSelectable) { + store.setState({ nodesSelectionActive: false }); - if (!selected) { - addSelectedNodes([id]); - } - } - - if (onClick) { - const node = store.getState().nodeInternals.get(id)!; - onClick(event, { ...node }); + if (!selected) { + addSelectedNodes([id]); } } + + if (onClick) { + const node = store.getState().nodeInternals.get(id)!; + onClick(event, { ...node }); + } }, - [isSelectable, selected, isDraggable, onClick, id] + [isSelectable, selected, onClick, id] ); const onDragStart = useCallback( @@ -130,9 +129,6 @@ export default (NodeComponent: ComponentType) => { [id, selected, selectNodesOnDrag, isSelectable, onNodeDragStart] ); - // As one of the props passed to a custom node - const [dragging, setDragging] = useState(false); - const onDrag = useCallback( (event: UseDragEvent, dragPos: UseDragData) => { updateNodePosition({ id, diff: { x: dragPos.dx, y: dragPos.dy } });