Center timeline on event select

This commit is contained in:
Franc Camps-Febrer
2019-01-08 17:44:21 +01:00
committed by Lachlan Kermode
parent 88092c711d
commit b84e59cd28

View File

@@ -58,6 +58,12 @@ class Timeline extends React.Component {
scaleY: this.makeScaleY(nextProps.domain.categories)
});
}
if (hash(nextProps.app.selected) !== hash(this.props.app.selected)) {
if (nextProps.app.selected !== null) {
this.onCenterTime(parseDate(nextProps.app.selected[0].timestamp));
}
}
}
addEventListeners() {
@@ -132,6 +138,17 @@ class Timeline extends React.Component {
});
}
onCenterTime(newCentralTime) {
const extent = this.getTimeScaleExtent();
const domain0 = d3.timeMinute.offset(newCentralTime, -extent/2);
const domainF = d3.timeMinute.offset(newCentralTime, +extent/2);
this.setState({ timerange: [domain0, domainF] }, () => {
this.props.methods.onUpdateTimerange(this.state.timerange);
});
}
/**
* Change display of time range
* WITHOUT updating the store, or data shown.