node selected

This commit is contained in:
StyleZhang
2024-04-01 20:32:59 +08:00
parent 5c3162cc33
commit e800109c02
4 changed files with 48 additions and 6 deletions

View File

@ -57,20 +57,38 @@ export const initialNodes = (nodes: Node[], edges: Edge[]) => {
}
export const initialEdges = (edges: Edge[], nodes: Node[]) => {
let selectedNode: Node | null = null
const nodesMap = nodes.reduce((acc, node) => {
acc[node.id] = node
if (node.data?.selected)
selectedNode = node
return acc
}, {} as Record<string, Node>)
return edges.map((edge) => {
edge.type = 'custom'
if (!edge.data?.sourceType)
edge.data = { ...edge.data, sourceType: nodesMap[edge.source].data.type! } as any
if (!edge.data?.sourceType) {
edge.data = {
...edge.data,
sourceType: nodesMap[edge.source].data.type!,
} as any
}
if (!edge.data?.targetType)
edge.data = { ...edge.data, targetType: nodesMap[edge.target].data.type! } as any
if (!edge.data?.targetType) {
edge.data = {
...edge.data,
targetType: nodesMap[edge.target].data.type!,
} as any
}
if (selectedNode) {
edge.data = {
...edge.data,
_connectedNodeIsSelected: edge.source === selectedNode.id || edge.target === selectedNode.id,
} as any
}
return edge
})
}