mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-16 07:15:55 +08:00
fix
This commit is contained in:
parent
35d9c59a29
commit
70aced0100
@ -12,12 +12,10 @@ import type {
|
||||
} from 'reactflow'
|
||||
import {
|
||||
getConnectedEdges,
|
||||
getIncomers,
|
||||
getOutgoers,
|
||||
useReactFlow,
|
||||
useStoreApi,
|
||||
} from 'reactflow'
|
||||
import { uniq } from 'lodash-es'
|
||||
import type { ToolDefaultValue } from '../block-selector/types'
|
||||
import type {
|
||||
Edge,
|
||||
@ -212,19 +210,22 @@ export const useNodesInteractions = () => {
|
||||
})
|
||||
})
|
||||
setEdges(newEdges)
|
||||
const incomesNodes = getIncomers(node, nodes, edges)
|
||||
if (incomesNodes.length) {
|
||||
const incomesNodesOutgoersId = uniq(incomesNodes.map(incomeNode => getOutgoers(incomeNode, nodes, edges)).flat().map(outgoer => outgoer.id))
|
||||
const connectedEdges = getConnectedEdges([node], edges).filter(edge => edge.target === node.id)
|
||||
|
||||
if (incomesNodesOutgoersId.length > 1) {
|
||||
const newNodes = produce(nodes, (draft) => {
|
||||
draft.forEach((n) => {
|
||||
if (incomesNodesOutgoersId.includes(n.id))
|
||||
n.data._inParallelHovering = true
|
||||
})
|
||||
const targetNodes: Node[] = []
|
||||
for (let i = 0; i < connectedEdges.length; i++) {
|
||||
const sourceConnectedEdges = getConnectedEdges([{ id: connectedEdges[i].source } as Node], edges).filter(edge => edge.source === connectedEdges[i].source && edge.sourceHandle === connectedEdges[i].sourceHandle)
|
||||
targetNodes.push(...sourceConnectedEdges.map(edge => nodes.find(n => n.id === edge.target)!))
|
||||
}
|
||||
|
||||
if (targetNodes.length > 1) {
|
||||
const newNodes = produce(nodes, (draft) => {
|
||||
draft.forEach((n) => {
|
||||
if (targetNodes.some(targetNode => n.id === targetNode.id))
|
||||
n.data._inParallelHovering = true
|
||||
})
|
||||
setNodes(newNodes)
|
||||
}
|
||||
})
|
||||
setNodes(newNodes)
|
||||
}
|
||||
}, [store, workflowStore, getNodesReadOnly])
|
||||
|
||||
|
@ -682,9 +682,7 @@ export const getParallelInfo = (nodes: Node[], edges: Edge[], parentNodeId?: str
|
||||
const outgoerConnectedEdges = getConnectedEdges([outgoer], edges).filter(edge => edge.source === outgoer.id)
|
||||
const sourceEdgesGroup = groupBy(outgoerConnectedEdges, 'sourceHandle')
|
||||
|
||||
Object.keys(sourceEdgesGroup).sort((a, b) => {
|
||||
return sourceEdgesGroup[b].length - sourceEdgesGroup[a].length
|
||||
}).forEach((sourceHandle) => {
|
||||
Object.keys(sourceEdgesGroup).forEach((sourceHandle) => {
|
||||
nextHandles.push({ node: outgoer, handle: sourceHandle })
|
||||
})
|
||||
if (!outgoerConnectedEdges.length)
|
||||
|
Loading…
x
Reference in New Issue
Block a user