componentWillReceiveProps()

in modules/core/src/components/declarative-ui/xviz-plot.js [80:118]


  componentWillReceiveProps(nextProps) {
    if (!nextProps.variables) {
      this.setState({independentVariable: null});
      return;
    }

    const independentVariable = nextProps.variables[nextProps.independentVariable];
    let independentVariableChanged = false;
    let dependentVariablesChanged = false;
    const updatedDependentVariable = {};

    if (independentVariable !== this.state.independentVariable) {
      independentVariableChanged = true;
    }
    for (const streamName of nextProps.dependentVariables) {
      const variable = nextProps.variables[streamName];
      if (
        independentVariableChanged ||
        !this.props.variables ||
        this.props.variables[streamName] !== variable
      ) {
        updatedDependentVariable[streamName] = this._formatDependentVariable(
          independentVariable,
          variable
        );
        dependentVariablesChanged = true;
      }
    }

    if (independentVariableChanged || dependentVariablesChanged) {
      this.setState({
        independentVariable,
        dependentVariables: {...this.state.dependentVariables, ...updatedDependentVariable},
        missingStreams: Object.keys(updatedDependentVariable).filter(
          dv => !updatedDependentVariable[dv]
        )
      });
    }
  }