feat(nodes): add helper functions to iterate over child nodes
This commit is contained in:
@@ -2,7 +2,8 @@ import { ComponentType } from 'react';
|
||||
|
||||
import { BezierEdge, StepEdge, SmoothStepEdge, StraightEdge } from '../../components/Edges';
|
||||
import wrapEdge from '../../components/Edges/wrapEdge';
|
||||
import { rectToBox, flattenNodes } from '../../utils/graph';
|
||||
import { rectToBox } from '../../utils/graph';
|
||||
import { nodeHelper } from '../../utils/nodes';
|
||||
|
||||
import {
|
||||
EdgeTypesType,
|
||||
@@ -171,16 +172,18 @@ type SourceTargetNode = {
|
||||
};
|
||||
|
||||
export const getSourceTargetNodes = (edge: Edge, nodes: Node[]): SourceTargetNode => {
|
||||
return flattenNodes(nodes).reduce(
|
||||
(res, node) => {
|
||||
if (node.id === edge.source) {
|
||||
res.sourceNode = node;
|
||||
}
|
||||
if (node.id === edge.target) {
|
||||
res.targetNode = node;
|
||||
}
|
||||
return res;
|
||||
},
|
||||
{ sourceNode: null, targetNode: null } as SourceTargetNode
|
||||
);
|
||||
return nodeHelper(nodes)
|
||||
.flatten()
|
||||
.reduce(
|
||||
(res, node) => {
|
||||
if (node.id === edge.source) {
|
||||
res.sourceNode = node;
|
||||
}
|
||||
if (node.id === edge.target) {
|
||||
res.targetNode = node;
|
||||
}
|
||||
return res;
|
||||
},
|
||||
{ sourceNode: null, targetNode: null } as SourceTargetNode
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user