private renderEdgeBadges()

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