diff --git a/src/components/Timeline.jsx b/src/components/Timeline.jsx
index f0dce23..c719778 100644
--- a/src/components/Timeline.jsx
+++ b/src/components/Timeline.jsx
@@ -7,6 +7,7 @@ import copy from '../js/data/copy.json';
import { formatterWithYear, isNotNullNorUndefined } from '../js/utilities';
import TimelineHeader from './presentational/TimelineHeader';
import TimelineHandles from './TimelineHandles.jsx';
+import TimelineZoomControls from './TimelineZoomControls.jsx';
import TimelineLogic from '../js/timeline/timeline.js';
@@ -43,7 +44,7 @@ class Timeline extends React.Component {
if (document.querySelector(`#${this.props.ui.dom.timeline}`) !== null) {
const boundingClient = document.querySelector(`#${this.props.ui.dom.timeline}`).getBoundingClientRect();
- WIDTH = boundingClient.width - WIDTH_CONTROLS;
+ WIDTH = boundingClient.width;
}
return {
height: HEIGHT,
@@ -61,19 +62,27 @@ class Timeline extends React.Component {
return '';
}
+ onApplyZoom(zoom) {
+ if (this.timeline) {
+ return this.timeline.applyZoom(zoom);
+ }
+ return '';
+ }
+
renderSVG() {
- const { width, height, margin_left } = this.getClientDims();
+ const dims = this.getClientDims();
return (
);
}
diff --git a/src/components/TimelineHandles.jsx b/src/components/TimelineHandles.jsx
index 7e69432..1e8b5df 100644
--- a/src/components/TimelineHandles.jsx
+++ b/src/components/TimelineHandles.jsx
@@ -11,7 +11,7 @@ class TimelineHandles extends React.Component {
- this.props.onMoveTime('forward')}>
+ this.props.onMoveTime('forward')}>
diff --git a/src/components/TimelineZoomControls.jsx b/src/components/TimelineZoomControls.jsx
new file mode 100644
index 0000000..51ce7a7
--- /dev/null
+++ b/src/components/TimelineZoomControls.jsx
@@ -0,0 +1,29 @@
+import React from 'react';
+
+class TimelineZoomControls extends React.Component {
+
+ renderZoom(zoom, idx) {
+ return (
+ this.props.onApplyZoom(zoom)}
+ >
+ {zoom.label}
+
+ )
+ }
+
+ render() {
+ const dims = this.props.dims;
+
+ return (
+
+ {this.props.zoomLevels.map((z, idx) => this.renderZoom(z, idx))}
+
+ );
+ }
+}
+
+export default TimelineZoomControls;
\ No newline at end of file
diff --git a/src/js/timeline/timeline.js b/src/js/timeline/timeline.js
index d362782..64ed9ba 100644
--- a/src/js/timeline/timeline.js
+++ b/src/js/timeline/timeline.js
@@ -132,12 +132,12 @@ console.log(svg)
// dom.backwards.append('circle');
// dom.backwards.append('path');
- dom.zooms = dom.controls.append('g');
-
- dom.zooms.selectAll('.zoom-level-button')
- .data(app.zoomLevels)
- .enter().append('text')
- .attr('class', 'zoom-level-button');
+// dom.zooms = dom.controls.append('g');
+//
+// dom.zooms.selectAll('.zoom-level-button')
+// .data(app.zoomLevels)
+// .enter().append('text')
+// .attr('class', 'zoom-level-button');
/*
@@ -251,18 +251,18 @@ console.log(svg)
/*
* TODO: Highlight zoom level based on time range selected
*/
- function highlightZoomLevel(zoom) {
- app.zoomLevels.forEach((level) => {
- if (level.label === zoom.label) {
- level.active = true;
- } else {
- level.active = false;
- }
- });
-
- dom.zooms.selectAll('text')
- .classed('active', level => level.active);
- }
+// function highlightZoomLevel(zoom) {
+// app.zoomLevels.forEach((level) => {
+// if (level.label === zoom.label) {
+// level.active = true;
+// } else {
+// level.active = false;
+// }
+// });
+//
+// dom.zooms.selectAll('text')
+// .classed('active', level => level.active);
+// }
/**
@@ -270,7 +270,7 @@ console.log(svg)
* @param {object} zoom: zoom level from zoomLevels
*/
function applyZoom(zoom) {
- highlightZoomLevel(zoom);
+// highlightZoomLevel(zoom);
const extent = getTimeScaleExtent();
const newCentralTime = d3.timeMinute.offset(scale.x.domain()[0], extent / 2);
@@ -507,14 +507,14 @@ console.log(svg)
// .attr('d', d3.symbol().type(d3.symbolTriangle).size(80))
// .attr('transform', `translate(${scale.x.range()[1] - 20}, 62)rotate(90)`);
- dom.zooms.selectAll('text')
- .text(d => d.label)
- .attr('x', 60)
- .attr('y', (d, i) => (i * 15) + 20)
- .classed('active', level => level.active);
-
- dom.zooms.selectAll('text')
- .on('click', zoom => applyZoom(zoom));
+// dom.zooms.selectAll('text')
+// .text(d => d.label)
+// .attr('x', 60)
+// .attr('y', (d, i) => (i * 15) + 20)
+// .classed('active', level => level.active);
+//
+// dom.zooms.selectAll('text')
+// .on('click', zoom => applyZoom(zoom));
}
@@ -583,6 +583,7 @@ console.log(svg)
}
return {
+ applyZoom,
moveTime,
update,
};