static getDerivedStateFromProps()

in src/SankeyDiagram.js [962:993]


  static getDerivedStateFromProps(nextProps, prevState) {
    const { prevProps } = prevState;

    // only update this._graph if a prop which affects the sankey layout has changed (most don't)
    const sankeyLayoutPropKeys = [
      'nodes',
      'links',
      'width',
      'height',
      'marginTop',
      'marginBottom',
      'marginLeft',
      'marginRight',
      'nodeId',
      'nodeWidth',
      'nodePadding',
      'nodeAlignment',
    ];

    const hasChangedSankey = sankeyLayoutPropKeys.some(key => {
      return nextProps[key] !== prevProps[key];
    });
    if (hasChangedSankey) {
      const graph = SankeyDiagram.makeSankeyGraph(nextProps);
      return {
        graph,
        prevProps: cloneDeep(nextProps),
      };
    }

    return null;
  }