in src/components/view/View.tsx [478:534]
private renderEdgeBadges() {
const nodes = this.props.state.nodes;
const edges = this.props.state.edges;
const renderCallback = this.props.configService.getRenderEdge();
const destroyCallback = this.props.configService.getRenderDestroy();
if (!renderCallback) {
return;
}
const { singles: edgeSingles, pairs: edgePairs } = this.getEdges();
let pairEdges: JSX.Element[] = [];
edgePairs.forEach((edgePair: string[]) => {
pairEdges = pairEdges.concat(edgePair.map((edgeKey: string, index: number) => {
const edgeCoordinates = getEdgeCoordinatePair(
nodes[edges[edgeKey].src],
nodes[edges[edgeKey].dest],
this.props.configService,
true
);
return (
<EdgeBadge
id={edgeKey}
key={`edgeBadge_${edges[edgeKey].id}`}
src={edgeCoordinates.src}
dest={edgeCoordinates.dest}
renderCallback={renderCallback.bind(null, edges[edgeKey])}
destroyCallback={destroyCallback}
isPartOfEdgePair={true}
/>
);
}));
});
const singleEdges = edgeSingles
.map((edgeKey: string) => {
const edgeCoordinates = getEdgeCoordinatePair(
nodes[edges[edgeKey].src],
nodes[edges[edgeKey].dest],
this.props.configService
);
return (
<EdgeBadge
id={edgeKey}
key={`edgeBadge_${edges[edgeKey].id}`}
src={edgeCoordinates.src}
dest={edgeCoordinates.dest}
renderCallback={renderCallback.bind(null, edges[edgeKey])}
destroyCallback={destroyCallback}
/>
);
});
return singleEdges.concat(pairEdges);
}