async addNewEdges()

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);
        }
      });
    }
  }