feat(nodes): multi drag

This commit is contained in:
moklick
2020-11-05 14:32:10 +01:00
parent 7d4a6d7c36
commit 0774d35846
4 changed files with 22 additions and 25 deletions
+10 -6
View File
@@ -94,13 +94,16 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
if (!isDraggable) {
if (isSelectable) {
unsetNodesSelection();
addSelectedElements({ id: node.id, type: node.type } as Node);
if (!selected) {
addSelectedElements({ id: node.id, type: node.type } as Node);
}
}
onClick?.(event, node);
}
},
[isSelectable, isDraggable, onClick, node]
[isSelectable, selected, isDraggable, onClick, node]
);
const onDragStart = useCallback(
@@ -109,16 +112,18 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
if (selectNodesOnDrag && isSelectable) {
unsetNodesSelection();
addSelectedElements({ id: node.id, type: node.type } as Node);
if (!selected) {
addSelectedElements({ id: node.id, type: node.type } as Node);
}
}
},
[node, selectNodesOnDrag, isSelectable, onNodeDragStart]
[node, selected, selectNodesOnDrag, isSelectable, onNodeDragStart]
);
const onDrag = useCallback(
(_, data) => {
updateNodePosDiff({
id,
diff: {
x: data.deltaX,
y: data.deltaY,
@@ -143,7 +148,6 @@ export default (NodeComponent: ComponentType<NodeComponentProps>) => {
}
updateNodePosDiff({
id,
isDragging: false,
});