2121import PropTypes from 'prop-types' ;
2222import React from 'react' ;
2323
24- import { getTraceTimestamp , getTraceDuration } from '../../selectors/trace' ;
25- import { getPercentageOfInterval } from '../../utils/date' ;
24+ import './Scrubber.css' ;
2625
2726const HANDLE_WIDTH = 6 ;
2827const HANDLE_HEIGHT = 20 ;
2928const HANDLE_TOP_OFFSET = 0 ;
3029
31- export default function TimelineScrubber ( {
32- trace,
33- timestamp,
30+ export default function Scrubber ( {
31+ position,
3432 onMouseDown,
3533 handleTopOffset = HANDLE_TOP_OFFSET ,
3634 handleWidth = HANDLE_WIDTH ,
3735 handleHeight = HANDLE_HEIGHT ,
3836} ) {
39- const initialTimestamp = getTraceTimestamp ( trace ) ;
40- const totalDuration = getTraceDuration ( trace ) ;
41- const xPercentage = getPercentageOfInterval ( timestamp , initialTimestamp , totalDuration ) ;
42-
37+ const xPercent = `${ position * 100 } %` ;
4338 return (
4439 < g className = "timeline-scrubber" onMouseDown = { onMouseDown } >
45- < line
46- className = "timeline-scrubber__line"
47- y1 = { 0 }
48- y2 = "100%"
49- x1 = { `${ xPercentage } %` }
50- x2 = { `${ xPercentage } %` }
51- />
40+ < line className = "timeline-scrubber__line" y2 = "100%" x1 = { xPercent } x2 = { xPercent } />
5241 < rect
53- x = { ` ${ xPercentage } %` }
42+ x = { xPercent }
5443 y = { handleTopOffset }
5544 className = "timeline-scrubber__handle"
5645 style = { { transform : `translate(${ - ( handleWidth / 2 ) } px)` } }
@@ -62,24 +51,25 @@ export default function TimelineScrubber({
6251 < circle
6352 className = "timeline-scrubber__handle--grip"
6453 style = { { transform : `translateY(${ handleHeight / 4 } px)` } }
65- cx = { `${ xPercentage } %` }
66- cy = { '50%' }
54+ cx = { xPercent }
55+ cy = "50%"
56+ r = "2"
6757 />
68- < circle className = "timeline-scrubber__handle--grip" cx = { ` ${ xPercentage } %` } cy = { ' 50%' } />
58+ < circle className = "timeline-scrubber__handle--grip" cx = { xPercent } cy = " 50%" r = "2" />
6959 < circle
7060 className = "timeline-scrubber__handle--grip"
71- style = { { transform : `translateY(${ - ( handleHeight / 4 ) } px)` } }
72- cx = { `${ xPercentage } %` }
73- cy = { '50%' }
61+ style = { { transform : `translateY(${ - handleHeight / 4 } px)` } }
62+ cx = { xPercent }
63+ cy = "50%"
64+ r = "2"
7465 />
7566 </ g >
7667 ) ;
7768}
7869
79- TimelineScrubber . propTypes = {
70+ Scrubber . propTypes = {
8071 onMouseDown : PropTypes . func ,
81- trace : PropTypes . object ,
82- timestamp : PropTypes . number . isRequired ,
72+ position : PropTypes . number . isRequired ,
8373 handleTopOffset : PropTypes . number ,
8474 handleWidth : PropTypes . number ,
8575 handleHeight : PropTypes . number ,
0 commit comments