@@ -37,28 +37,35 @@ const ZoomSliderActiveTrackRect = styled('rect')(({ theme }) => ({
3737const formatter = Intl . NumberFormat ( undefined , { maximumFractionDigits : 0 } ) ;
3838const zoomValueFormatter = ( value : number ) => formatter . format ( value ) ;
3939
40+ export interface ChartAxisZoomSliderActiveTrackProps {
41+ axisId : AxisId ;
42+ axisDirection : 'x' | 'y' ;
43+ axisPosition : 'top' | 'bottom' | 'left' | 'right' ;
44+ zoomData : ZoomData ;
45+ reverse ?: boolean ;
46+ valueFormatter ?: ( value : number ) => string ;
47+ showTooltip : boolean ;
48+ onPointerEnter ?: ( ) => void ;
49+ onPointerLeave ?: ( ) => void ;
50+ }
51+
4052export function ChartAxisZoomSliderActiveTrack ( {
4153 axisId,
4254 axisDirection,
4355 axisPosition,
4456 zoomData,
4557 reverse,
4658 valueFormatter = zoomValueFormatter ,
47- } : {
48- axisId : AxisId ;
49- axisDirection : 'x' | 'y' ;
50- axisPosition : 'top' | 'bottom' | 'left' | 'right' ;
51- zoomData : ZoomData ;
52- reverse : boolean ;
53- valueFormatter ?: ( value : number ) => string ;
54- } ) {
59+ showTooltip,
60+ onPointerEnter,
61+ onPointerLeave,
62+ } : ChartAxisZoomSliderActiveTrackProps ) {
5563 const { instance, svgRef } = useChartContext < [ UseChartProZoomSignature ] > ( ) ;
5664 const store = useStore < [ UseChartProZoomSignature ] > ( ) ;
5765 const drawingArea = useDrawingArea ( ) ;
5866 const activePreviewRectRef = React . useRef < SVGRectElement > ( null ) ;
5967 const [ startThumbEl , setStartThumbEl ] = React . useState < SVGRectElement | null > ( null ) ;
6068 const [ endThumbEl , setEndThumbEl ] = React . useState < SVGRectElement | null > ( null ) ;
61- const [ showTooltip , setShowTooltip ] = React . useState ( false ) ;
6269
6370 const previewThumbWidth =
6471 axisDirection === 'x' ? ZOOM_SLIDER_THUMB_WIDTH : ZOOM_SLIDER_THUMB_HEIGHT ;
@@ -102,7 +109,6 @@ export function ChartAxisZoomSliderActiveTrack({
102109 const onPointerUp = ( ) => {
103110 activePreviewRect . removeEventListener ( 'pointermove' , onPointerMove ) ;
104111 document . removeEventListener ( 'pointerup' , onPointerUp ) ;
105- setShowTooltip ( false ) ;
106112 } ;
107113
108114 const onPointerDown = ( event : PointerEvent ) => {
@@ -128,7 +134,6 @@ export function ChartAxisZoomSliderActiveTrack({
128134 pointerZoomMin = pointerDownZoom - axisZoomData . start ;
129135 pointerZoomMax = 100 - ( axisZoomData . end - pointerDownZoom ) ;
130136
131- setShowTooltip ( true ) ;
132137 document . addEventListener ( 'pointerup' , onPointerUp ) ;
133138 activePreviewRect . addEventListener ( 'pointermove' , onPointerMove ) ;
134139 } ;
@@ -272,8 +277,8 @@ export function ChartAxisZoomSliderActiveTrack({
272277 y = { previewY + ( axisDirection === 'x' ? previewOffset : 0 ) }
273278 width = { previewWidth }
274279 height = { previewHeight }
275- onPointerEnter = { ( ) => setShowTooltip ( true ) }
276- onPointerLeave = { ( ) => setShowTooltip ( false ) }
280+ onPointerEnter = { onPointerEnter }
281+ onPointerLeave = { onPointerLeave }
277282 />
278283 < ChartAxisZoomSliderThumb
279284 ref = { setStartThumbEl }
@@ -283,8 +288,8 @@ export function ChartAxisZoomSliderActiveTrack({
283288 height = { previewThumbHeight }
284289 orientation = { axisDirection === 'x' ? 'horizontal' : 'vertical' }
285290 onMove = { onStartThumbMove }
286- onPointerEnter = { ( ) => setShowTooltip ( true ) }
287- onPointerLeave = { ( ) => setShowTooltip ( false ) }
291+ onPointerEnter = { onPointerEnter }
292+ onPointerLeave = { onPointerLeave }
288293 placement = "start"
289294 />
290295 < ChartAxisZoomSliderThumb
@@ -295,8 +300,8 @@ export function ChartAxisZoomSliderActiveTrack({
295300 height = { previewThumbHeight }
296301 orientation = { axisDirection === 'x' ? 'horizontal' : 'vertical' }
297302 onMove = { onEndThumbMove }
298- onPointerEnter = { ( ) => setShowTooltip ( true ) }
299- onPointerLeave = { ( ) => setShowTooltip ( false ) }
303+ onPointerEnter = { onPointerEnter }
304+ onPointerLeave = { onPointerLeave }
300305 placement = "end"
301306 />
302307 < ChartsTooltipZoomSliderValue
0 commit comments