static getDerivedStateFromProps()

in src/components/graph-view.js [101:138]


  static getDerivedStateFromProps(
    nextProps: IGraphViewProps,
    prevState: IGraphViewState
  ) {
    const { edges, nodeKey } = nextProps;
    let nodes = nextProps.nodes;
    const nodesMap = GraphUtils.getNodesMap(nodes, nodeKey);
    const edgesMap = GraphUtils.getEdgesMap(edges);

    GraphUtils.linkNodesAndEdges(nodesMap, edges);

    // Handle layoutEngine on initial render
    if (
      prevState.nodes.length === 0 &&
      nextProps.layoutEngineType &&
      LayoutEngines[nextProps.layoutEngineType]
    ) {
      const layoutEngine = new LayoutEngines[nextProps.layoutEngineType](
        nextProps
      );

      const newNodes = layoutEngine.adjustNodes(nodes, nodesMap);

      nodes = newNodes;
    }

    const nextState = {
      componentUpToDate: true,
      edges,
      edgesMap,
      nodes,
      nodesMap,
      readOnly: nextProps.readOnly,
      selectionChanged: false,
    };

    return nextState;
  }