in src/components/graph-view-v2.js [440:477]
async addNewEdges(
edges: IEdge[],
oldEdgesMap: any,
selected?: SelectionT | null,
prevSelected?: SelectionT | null,
forceRender: boolean = false
) {
if (!this.state.draggingEdge) {
let edgeID = null;
let prevEdge = null;
const selectedEdge = null;
const prevSelectedEdge = null;
const hasSelectionChanged = selected !== prevSelected;
GraphUtils.yieldingLoop(edges.length, 50, i => {
const edge = edges[i];
if (edge.source == null || !edge.target == null) {
return;
}
edgeID = `${edge.source}_${edge.target}`;
prevEdge = oldEdgesMap[edgeID];
if (
forceRender ||
!prevEdge || // selection change
!GraphUtils.isEqual(prevEdge.edge, edge) ||
edge === selectedEdge ||
(prevSelectedEdge && edge === prevSelectedEdge)
) {
// new edge
// force re-render when selection changes
this.asyncRenderEdge(edge, false, hasSelectionChanged);
}
});
}
}