diff --git a/src/components/Timeline.jsx b/src/components/Timeline.jsx index deafaa3..1eb8e76 100644 --- a/src/components/Timeline.jsx +++ b/src/components/Timeline.jsx @@ -9,10 +9,10 @@ import TimelineHeader from './presentational/TimelineHeader'; import TimelineAxis from './TimelineAxis.jsx'; import TimelineClip from './presentational/TimelineClip'; import TimelineHandles from './presentational/TimelineHandles.js'; -import TimelineZoomControls from './TimelineZoomControls.jsx'; +import TimelineZoomControls from './presentational/TimelineZoomControls.js'; import TimelineLabels from './presentational/TimelineLabels.js'; -import TimelineMarkers from './TimelineMarkers.jsx' -import TimelineEvents from './TimelineEvents.jsx'; +import TimelineMarkers from './presentational/TimelineMarkers.js' +import TimelineEvents from './presentational/TimelineEvents.js'; import TimelineCategories from './TimelineCategories.jsx'; class Timeline extends React.Component { @@ -30,7 +30,6 @@ class Timeline extends React.Component { margin_top: 20, trackHeight: 80 }, - softTimeUpdate: 0, scaleX: null, scaleY: null, timerange: [null, null], diff --git a/src/components/TimelineEvents.jsx b/src/components/TimelineEvents.jsx deleted file mode 100644 index 9b1a752..0000000 --- a/src/components/TimelineEvents.jsx +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; - -class TimelineEvents extends React.Component { - - getAllEventsAtOnce(eventPoint) { - const timestamp = eventPoint.timestamp; - const category = eventPoint.category; - return this.props.events - .filter(event => (event.timestamp === timestamp && category === event.category)) - } - - renderEvent(event) { - return ( - {this.props.onSelect(this.getAllEventsAtOnce(event))}} - > - - ) - } - - render () { - return ( - - {this.props.events.map(event => this.renderEvent(event))} - - ); - } -} - -export default TimelineEvents; \ No newline at end of file diff --git a/src/components/TimelineMarkers.jsx b/src/components/TimelineMarkers.jsx deleted file mode 100644 index d79ac88..0000000 --- a/src/components/TimelineMarkers.jsx +++ /dev/null @@ -1,33 +0,0 @@ -import React from 'react'; - -class TimelineMarkers extends React.Component { - - renderMarker(event) { - return ( - - - ) - } - - render () { - return ( - - {this.props.selected.map(event => this.renderMarker(event))} - - ); - } -} - -export default TimelineMarkers; \ No newline at end of file diff --git a/src/components/TimelineZoomControls.jsx b/src/components/TimelineZoomControls.jsx deleted file mode 100644 index 51ce7a7..0000000 --- a/src/components/TimelineZoomControls.jsx +++ /dev/null @@ -1,29 +0,0 @@ -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/components/presentational/TimelineEvents.js b/src/components/presentational/TimelineEvents.js new file mode 100644 index 0000000..5dc8dce --- /dev/null +++ b/src/components/presentational/TimelineEvents.js @@ -0,0 +1,40 @@ +import React from 'react'; + +const TimelineEvents = ({ events, getEventX, getEventY, + getCategoryColor, onSelect, transitionDuration }) => { + + function getAllEventsAtOnce(eventPoint) { + const timestamp = eventPoint.timestamp; + const category = eventPoint.category; + return events + .filter(event => (event.timestamp === timestamp && category === event.category)) + } + + function renderEvent(event) { + return ( + {onSelect(getAllEventsAtOnce(event))}} + > + + ) + } + + return ( + + {events.map(event => renderEvent(event))} + + ); +} + +export default TimelineEvents; \ No newline at end of file diff --git a/src/components/presentational/TimelineHandles.js b/src/components/presentational/TimelineHandles.js index 30e0ca2..3e65f9b 100644 --- a/src/components/presentational/TimelineHandles.js +++ b/src/components/presentational/TimelineHandles.js @@ -6,14 +6,14 @@ const TimelineHandles = ({ dims, onMoveTime }) => { this.props.onMoveTime('backwards')} + onClick={() => onMoveTime('backwards')} > this.props.onMoveTime('forward')} + onClick={() => onMoveTime('forward')} > diff --git a/src/components/presentational/TimelineLabels.js b/src/components/presentational/TimelineLabels.js index bd6f8ad..3f165aa 100644 --- a/src/components/presentational/TimelineLabels.js +++ b/src/components/presentational/TimelineLabels.js @@ -1,6 +1,6 @@ import React from 'react'; -import { formatterWithYear } from '../js/utilities'; +import { formatterWithYear } from '../../js/utilities.js'; const TimelineLabels = ({ dims, timelabels }) => { diff --git a/src/components/presentational/TimelineMarkers.js b/src/components/presentational/TimelineMarkers.js new file mode 100644 index 0000000..7126015 --- /dev/null +++ b/src/components/presentational/TimelineMarkers.js @@ -0,0 +1,31 @@ +import React from 'react'; + +const TimelineMarkers = ({ getEventX, getEventY, transitionDuration, selected }) => { + function renderMarker(event) { + return ( + + + ) + } + + return ( + + {selected.map(event => renderMarker(event))} + + ); +} + +export default TimelineMarkers; \ No newline at end of file diff --git a/src/components/presentational/TimelineZoomControls.js b/src/components/presentational/TimelineZoomControls.js new file mode 100644 index 0000000..9b4f6c2 --- /dev/null +++ b/src/components/presentational/TimelineZoomControls.js @@ -0,0 +1,25 @@ +import React from 'react'; + +const TimelineZoomControls = ({ zoomLevels, dims, onApplyZoom }) => { + + function renderZoom(zoom, idx) { + return ( + onApplyZoom(zoom)} + > + {zoom.label} + + ) + } + + return ( + + {zoomLevels.map((z, idx) => renderZoom(z, idx))} + + ); +} + +export default TimelineZoomControls; \ No newline at end of file