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