diff --git a/src/components/Timeline.jsx b/src/components/Timeline.jsx
index fde5759..dd21199 100644
--- a/src/components/Timeline.jsx
+++ b/src/components/Timeline.jsx
@@ -41,27 +41,40 @@ class Timeline extends React.Component {
componentDidMount() {
this.computeDims();
- window.addEventListener('resize', () => { this.computeDims(); });
+ this.addEventListeners();
}
componentWillReceiveProps(nextProps) {
if (hash(nextProps) !== hash(this.props)) {
- const categories = nextProps.domain.categories;
- const catsYpos = categories.map((g, i) => (i + 1) * 80 / categories.length);
-
+ console.log(nextProps.domain.categories)
this.setState({
timerange: nextProps.app.timerange,
- scaleX: d3.scaleTime().domain(nextProps.app.timerange).range([this.state.dims.margin_left, this.state.dims.width]),
- scaleY: d3.scaleOrdinal().domain(nextProps.domain.categories).range(catsYpos)
+ scaleX: this.makeScaleX(),
+ scaleY: this.makeScaleY(nextProps.domain.categories)
});
}
}
+ addEventListeners() {
+ window.addEventListener('resize', () => { this.computeDims(); });
+ }
+
+ makeScaleX() {
+ return d3.scaleTime()
+ .domain(this.state.timerange)
+ .range([this.state.dims.margin_left, this.state.dims.width - this.state.dims.width_controls]);
+ }
+
+ makeScaleY(categories) {
+ const catsYpos = categories.map((g, i) => (i + 1) * this.state.dims.trackHeight / categories.length);
+ return d3.scaleOrdinal()
+ .domain(categories)
+ .range(catsYpos);
+ }
+
componentDidUpdate(prevProps, prevState) {
if (prevState.timerange !== this.state.timerange) {
- this.setState({
- scaleX: d3.scaleTime().domain(this.state.timerange).range([this.state.dims.margin_left, this.state.dims.width])
- });
+ this.setState({ scaleX: this.makeScaleX() });
}
}
@@ -78,6 +91,7 @@ class Timeline extends React.Component {
* @param {object} eventPoint: regular eventPoint data
*/
getEventY(eventPoint) {
+ console.log(eventPoint.category, this.state.scaleY(eventPoint.category))
return this.state.scaleY(eventPoint.category);
}
@@ -186,13 +200,12 @@ class Timeline extends React.Component {
this.onSoftTimeRangeUpdate([newDomain0, newDomainF]);
}
+ /**
+ * Stop dragging and update data
+ */
onDragEnd() {
this.toggleTransition(true);
- this.setState({
- timerange: this.state.scaleX.domain()
- }, () => {
- this.props.methods.onUpdateTimerange(this.state.scaleX.domain());
- });
+ this.props.methods.onUpdateTimerange(this.state.timerange);
}
renderSVG() {
@@ -204,7 +217,9 @@ class Timeline extends React.Component {
width={dims.width}
height={dims.height}
>
-
+