From c4cac4caa6dacac5552819cff3f2c33bd0eea8fe Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 1 Sep 2022 10:58:12 +0200 Subject: [PATCH] refactor(drag-handlers): always trigger dragStop when there is a dragStart closes #1424, #2341 --- packages/core/src/hooks/useDrag/index.ts | 31 ++++++++++++------------ 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/packages/core/src/hooks/useDrag/index.ts b/packages/core/src/hooks/useDrag/index.ts index 025621d4..62806937 100644 --- a/packages/core/src/hooks/useDrag/index.ts +++ b/packages/core/src/hooks/useDrag/index.ts @@ -130,25 +130,24 @@ function useDrag({ onDrag(event.sourceEvent as MouseEvent, currentNode, nodes); } } + }) + .on('end', (event) => { + setDragging(false); + if (dragItems.current) { + const { updateNodePositions, nodeInternals, onNodeDragStop, onSelectionDragStop } = store.getState(); + const onStop = nodeId ? onNodeDragStop : wrapSelectionDragFunc(onSelectionDragStop); - event.on('end', (event) => { - setDragging(false); - if (dragItems.current) { - const { updateNodePositions, nodeInternals, onNodeDragStop, onSelectionDragStop } = store.getState(); - const onStop = nodeId ? onNodeDragStop : wrapSelectionDragFunc(onSelectionDragStop); + updateNodePositions(dragItems.current, false, false); - updateNodePositions(dragItems.current, false, false); - - if (onStop) { - const [currentNode, nodes] = getEventHandlerParams({ - nodeId, - dragItems: dragItems.current, - nodeInternals, - }); - onStop(event.sourceEvent as MouseEvent, currentNode, nodes); - } + if (onStop) { + const [currentNode, nodes] = getEventHandlerParams({ + nodeId, + dragItems: dragItems.current, + nodeInternals, + }); + onStop(event.sourceEvent as MouseEvent, currentNode, nodes); } - }); + } }) .filter((event: MouseEvent) => { const target = event.target as HTMLDivElement;