Fix onClick handler for draggable nodes

This commit is contained in:
Furkan Kalaycioglu
2022-05-10 22:28:28 +03:00
parent df526b2a10
commit 0ef3ce81a8
+11 -15
View File
@@ -58,6 +58,7 @@ export default (NodeComponent: ComponentType<NodeProps>) => {
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<NodeProps>) => {
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<NodeProps>) => {
[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 } });