|
|
|
@@ -43,7 +43,10 @@ export const useNodesInteractions = () => { |
|
|
|
const workflowStore = useWorkflowStore() |
|
|
|
const nodesExtraData = useNodesExtraData() |
|
|
|
const { handleSyncWorkflowDraft } = useNodesSyncDraft() |
|
|
|
const { getAfterNodesInSameBranch } = useWorkflow() |
|
|
|
const { |
|
|
|
getAfterNodesInSameBranch, |
|
|
|
getTreeLeafNodes, |
|
|
|
} = useWorkflow() |
|
|
|
const { getNodesReadOnly } = useNodesReadOnly() |
|
|
|
const dragNodeStartPosition = useRef({ x: 0, y: 0 } as { x: number; y: number }) |
|
|
|
const connectingNodeRef = useRef<{ nodeId: string; handleType: HandleType } | null>(null) |
|
|
|
@@ -313,6 +316,13 @@ export const useNodesInteractions = () => { |
|
|
|
setEdges, |
|
|
|
} = store.getState() |
|
|
|
const nodes = getNodes() |
|
|
|
const targetNode = nodes.find(node => node.id === target!) |
|
|
|
if (targetNode && targetNode?.data.type === BlockEnum.VariableAssigner) { |
|
|
|
const treeNodes = getTreeLeafNodes(target!) |
|
|
|
|
|
|
|
if (!treeNodes.find(treeNode => treeNode.id === source)) |
|
|
|
return |
|
|
|
} |
|
|
|
const needDeleteEdges = edges.filter((edge) => { |
|
|
|
if (edge.source === source) { |
|
|
|
if (edge.sourceHandle) |
|
|
|
@@ -368,7 +378,7 @@ export const useNodesInteractions = () => { |
|
|
|
}) |
|
|
|
setEdges(newEdges) |
|
|
|
handleSyncWorkflowDraft() |
|
|
|
}, [store, handleSyncWorkflowDraft, getNodesReadOnly]) |
|
|
|
}, [store, handleSyncWorkflowDraft, getNodesReadOnly, getTreeLeafNodes]) |
|
|
|
|
|
|
|
const handleNodeConnectStart = useCallback<OnConnectStart>((_, { nodeId, handleType }) => { |
|
|
|
if (nodeId && handleType) { |