mirror of https://github.com/langgenius/dify.git
fix: edge
This commit is contained in:
parent
50a7c2c92c
commit
ffb698922a
|
|
@ -303,6 +303,7 @@ export const useNodesInteractions = () => {
|
|||
targetType: nodes.find(node => node.id === target)!.data.type,
|
||||
},
|
||||
}
|
||||
console.log(needDeleteEdges, '1')
|
||||
const nodesConnectedSourceOrTargetHandleIdsMap = getNodesConnectedSourceOrTargetHandleIdsMap(
|
||||
[
|
||||
...needDeleteEdges.map(edge => ({ type: 'remove', edge })),
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ export const NodeTargetHandle = memo(({
|
|||
triggerClassName={open => `
|
||||
hidden absolute left-0 top-0 pointer-events-none
|
||||
${nodeSelectorClassName}
|
||||
group-hover:flex
|
||||
${data.selected && '!flex'}
|
||||
${open && '!flex'}
|
||||
`}
|
||||
availableBlocksTypes={availablePrevNodes}
|
||||
|
|
@ -167,7 +167,7 @@ export const NodeSourceHandle = memo(({
|
|||
triggerClassName={open => `
|
||||
hidden absolute top-0 left-0 pointer-events-none
|
||||
${nodeSelectorClassName}
|
||||
group-hover:flex
|
||||
${data.selected && '!flex'}
|
||||
${open && '!flex'}
|
||||
`}
|
||||
availableBlocksTypes={availableNextNodes}
|
||||
|
|
|
|||
|
|
@ -121,36 +121,31 @@ export const getNodesConnectedSourceOrTargetHandleIdsMap = (changes: ConnectedSo
|
|||
edge,
|
||||
type,
|
||||
} = change
|
||||
const sourceNode = nodes.find(node => node.id === edge.source)
|
||||
const sourceNode = nodes.find(node => node.id === edge.source)!
|
||||
const sourceNodeConnectedSourceHandleIds = sourceNode?.data._connectedSourceHandleIds || []
|
||||
const targetNode = nodes.find(node => node.id === edge.target)
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id] = nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id] || {
|
||||
_connectedSourceHandleIds: sourceNodeConnectedSourceHandleIds,
|
||||
}
|
||||
const targetNode = nodes.find(node => node.id === edge.target)!
|
||||
const targetNodeConnectedTargetHandleIds = targetNode?.data._connectedTargetHandleIds || []
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id] = nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id] || {
|
||||
_connectedTargetHandleIds: targetNodeConnectedTargetHandleIds,
|
||||
}
|
||||
|
||||
if (sourceNode) {
|
||||
const newSourceNodeConnectedSourceHandleIds = type === 'remove'
|
||||
? sourceNodeConnectedSourceHandleIds.filter(handleId => handleId !== edge.sourceHandle)
|
||||
: sourceNodeConnectedSourceHandleIds.concat(edge.sourceHandle || 'source')
|
||||
if (!nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id]) {
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id] = {
|
||||
_connectedSourceHandleIds: newSourceNodeConnectedSourceHandleIds,
|
||||
}
|
||||
}
|
||||
else {
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id]._connectedSourceHandleIds = newSourceNodeConnectedSourceHandleIds
|
||||
}
|
||||
if (type === 'remove')
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id]._connectedSourceHandleIds = nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id]._connectedSourceHandleIds.filter((handleId: string) => handleId !== edge.sourceHandle)
|
||||
|
||||
if (type === 'add')
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[sourceNode.id]._connectedSourceHandleIds.push(edge.sourceHandle || 'source')
|
||||
}
|
||||
|
||||
if (targetNode) {
|
||||
const newTargetNodeConnectedTargetHandleIds = type === 'remove'
|
||||
? targetNodeConnectedTargetHandleIds.filter(handleId => handleId !== edge.targetHandle)
|
||||
: targetNodeConnectedTargetHandleIds.concat(edge.targetHandle || 'target')
|
||||
if (!nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id]) {
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id] = {
|
||||
_connectedTargetHandleIds: newTargetNodeConnectedTargetHandleIds,
|
||||
}
|
||||
}
|
||||
else {
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id]._connectedTargetHandleIds = newTargetNodeConnectedTargetHandleIds
|
||||
}
|
||||
if (type === 'remove')
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id]._connectedTargetHandleIds = nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id]._connectedTargetHandleIds.filter((handleId: string) => handleId !== edge.targetHandle)
|
||||
|
||||
if (type === 'add')
|
||||
nodesConnectedSourceOrTargetHandleIdsMap[targetNode.id]._connectedTargetHandleIds.push(edge.targetHandle || 'target')
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue