1
- import React from 'react'
1
+ import React from 'react' ;
2
2
//
3
- import Raf from '../utils/Raf'
4
- import { translate } from '../utils/Utils'
3
+ import Raf from '../utils/Raf' ;
4
+ import { translate } from '../utils/Utils' ;
5
5
6
- import useChartContext from '../hooks/useChartContext'
7
- import useChartState from '../hooks/useChartState'
8
- import useIsomorphicLayoutEffect from '../hooks/useIsomorphicLayoutEffect'
6
+ import useChartContext from '../hooks/useChartContext' ;
7
+ import useChartState from '../hooks/useChartState' ;
8
+ import useIsomorphicLayoutEffect from '../hooks/useIsomorphicLayoutEffect' ;
9
9
10
- import Rectangle from '../primitives/Rectangle'
10
+ import Rectangle from '../primitives/Rectangle' ;
11
11
12
- import Voronoi from './Voronoi'
13
- import Axis from './Axis'
14
- import Tooltip from './Tooltip'
15
- import Cursor from './Cursor'
16
- import Brush from './Brush'
12
+ import Voronoi from './Voronoi' ;
13
+ import Axis from './Axis' ;
14
+ import Tooltip from './Tooltip' ;
15
+ import Cursor from './Cursor' ;
16
+ import Brush from './Brush' ;
17
17
18
18
export default React . forwardRef ( function ChartInner (
19
19
{ className, style = { } , ...rest } ,
20
20
ref
21
21
) {
22
- const svgRef = React . useRef ( )
22
+ const svgRef = React . useRef ( ) ;
23
23
24
24
const {
25
25
width,
@@ -33,73 +33,74 @@ export default React.forwardRef(function ChartInner(
33
33
seriesOptions,
34
34
getSeriesOrder,
35
35
focused,
36
+ focusedElement,
36
37
getOnClick,
37
- } = useChartContext ( )
38
+ } = useChartContext ( ) ;
38
39
39
- const [ offset ] = useChartState ( d => d . offset )
40
- const [ setOffset , setChartState ] = useChartState ( d => d . setOffset )
40
+ const [ offset ] = useChartState ( ( d ) => d . offset ) ;
41
+ const [ setOffset , setChartState ] = useChartState ( ( d ) => d . setOffset ) ;
41
42
42
43
useIsomorphicLayoutEffect ( ( ) => {
43
44
if ( ! svgRef . current ) {
44
- return
45
+ return ;
45
46
}
46
47
47
- const current = svgRef . current . getBoundingClientRect ( )
48
+ const current = svgRef . current . getBoundingClientRect ( ) ;
48
49
49
50
if ( current . left !== offset . left || current . top !== offset . top ) {
50
51
setOffset ( {
51
52
left : current . left ,
52
53
top : current . top ,
53
- } )
54
+ } ) ;
54
55
}
55
- } )
56
+ } ) ;
56
57
57
- const onMouseLeave = e => {
58
- setChartState ( old => ( { ...old , hovered : null } ) )
59
- setChartState ( old => ( {
58
+ const onMouseLeave = ( e ) => {
59
+ setChartState ( ( old ) => ( { ...old , focused : null } ) ) ;
60
+ setChartState ( ( old ) => ( {
60
61
...old ,
61
62
pointer : {
62
63
...old . pointer ,
63
64
active : false ,
64
65
} ,
65
- } ) )
66
- }
66
+ } ) ) ;
67
+ } ;
67
68
68
- const rafRef = React . useRef ( )
69
+ const rafRef = React . useRef ( ) ;
69
70
70
- const onMouseMove = e => {
71
+ const onMouseMove = ( e ) => {
71
72
if ( rafRef . current ) {
72
- Raf . cancel ( rafRef . current )
73
+ Raf . cancel ( rafRef . current ) ;
73
74
}
74
75
rafRef . current = Raf ( ( ) => {
75
- rafRef . current = null
76
- const { clientX, clientY } = e
76
+ rafRef . current = null ;
77
+ const { clientX, clientY } = e ;
77
78
78
- setChartState ( old => {
79
- const x = clientX - offset . left - gridX
80
- const y = clientY - offset . top - gridY
79
+ setChartState ( ( old ) => {
80
+ const x = clientX - offset . left - gridX ;
81
+ const y = clientY - offset . top - gridY ;
81
82
82
83
const pointer = {
83
84
...old . pointer ,
84
85
active : true ,
85
86
x,
86
87
y,
87
88
dragging : old . pointer ?. down ,
88
- }
89
+ } ;
89
90
90
91
return {
91
92
...old ,
92
93
pointer,
93
- }
94
- } )
95
- } )
96
- }
94
+ } ;
95
+ } ) ;
96
+ } ) ;
97
+ } ;
97
98
98
99
const onMouseUp = ( ) => {
99
- document . removeEventListener ( 'mouseup' , onMouseUp )
100
- document . removeEventListener ( 'mousemove' , onMouseMove )
100
+ document . removeEventListener ( 'mouseup' , onMouseUp ) ;
101
+ document . removeEventListener ( 'mousemove' , onMouseMove ) ;
101
102
102
- setChartState ( old => {
103
+ setChartState ( ( old ) => {
103
104
return {
104
105
...old ,
105
106
pointer : {
@@ -111,32 +112,32 @@ export default React.forwardRef(function ChartInner(
111
112
y : old . pointer . y ,
112
113
} ,
113
114
} ,
114
- }
115
- } )
116
- }
115
+ } ;
116
+ } ) ;
117
+ } ;
117
118
118
119
const onMouseDown = ( ) => {
119
- document . addEventListener ( 'mouseup' , onMouseUp )
120
- document . addEventListener ( 'mousemove' , onMouseMove )
120
+ document . addEventListener ( 'mouseup' , onMouseUp ) ;
121
+ document . addEventListener ( 'mousemove' , onMouseMove ) ;
121
122
122
- setChartState ( old => ( {
123
+ setChartState ( ( old ) => ( {
123
124
...old ,
124
125
pointer : {
125
126
...old . pointer ,
126
127
sourceX : old . pointer . x ,
127
128
sourceY : old . pointer . y ,
128
129
down : true ,
129
130
} ,
130
- } ) )
131
- }
131
+ } ) ) ;
132
+ } ;
132
133
133
134
// Reverse the stack order for proper z-indexing
134
- const reversedStackData = [ ...stackData ] . reverse ( )
135
- const orderedStackData = getSeriesOrder ( reversedStackData )
135
+ const reversedStackData = [ ...stackData ] . reverse ( ) ;
136
+ const orderedStackData = getSeriesOrder ( reversedStackData ) ;
136
137
137
138
const focusedSeriesIndex = focused
138
- ? orderedStackData . findIndex ( series => series . id === focused . series . id )
139
- : - 1
139
+ ? orderedStackData . findIndex ( ( series ) => series . id === focused . series . id )
140
+ : - 1 ;
140
141
141
142
// Bring focused series to the front
142
143
const focusOrderedStackData = focused
@@ -145,28 +146,28 @@ export default React.forwardRef(function ChartInner(
145
146
...orderedStackData . slice ( focusedSeriesIndex + 1 ) ,
146
147
orderedStackData [ focusedSeriesIndex ] ,
147
148
]
148
- : orderedStackData
149
+ : orderedStackData ;
149
150
150
- const stacks = focusOrderedStackData . map ( stack => {
151
+ const stacks = focusOrderedStackData . map ( ( stack ) => {
151
152
return (
152
153
< stack . Component
153
154
key = { stack . id }
154
155
{ ...seriesOptions [ stack . index ] }
155
156
series = { stack }
156
157
stackData = { stackData }
157
158
/>
158
- )
159
- } )
159
+ ) ;
160
+ } ) ;
160
161
161
162
useIsomorphicLayoutEffect ( ( ) => {
162
163
if (
163
164
ref . current &&
164
165
ref . current . parentElement &&
165
166
! ref . current . parentElement . style . position
166
167
) {
167
- ref . current . parentElement . style . position = 'relative'
168
+ ref . current . parentElement . style . position = 'relative' ;
168
169
}
169
- } )
170
+ } ) ;
170
171
171
172
return (
172
173
< div
@@ -179,7 +180,9 @@ export default React.forwardRef(function ChartInner(
179
180
position : 'absolute' ,
180
181
...style ,
181
182
} }
182
- onClick = { getOnClick ( ) ? e => getOnClick ( ) ( focused , e ) : undefined }
183
+ onClick = {
184
+ getOnClick ( ) ? ( e ) => getOnClick ( ) ( focusedElement , e ) : undefined
185
+ }
183
186
>
184
187
< svg
185
188
ref = { svgRef }
@@ -188,10 +191,10 @@ export default React.forwardRef(function ChartInner(
188
191
height,
189
192
overflow : 'hidden' ,
190
193
} }
191
- onMouseEnter = { e => e . persist ( ) || onMouseMove ( e ) }
192
- onMouseMove = { e => e . persist ( ) || onMouseMove ( e ) }
193
- onMouseLeave = { e => e . persist ( ) || onMouseLeave ( e ) }
194
- onMouseDown = { e => e . persist ( ) || onMouseDown ( e ) }
194
+ onMouseEnter = { ( e ) => e . persist ( ) || onMouseMove ( e ) }
195
+ onMouseMove = { ( e ) => e . persist ( ) || onMouseMove ( e ) }
196
+ onMouseLeave = { ( e ) => e . persist ( ) || onMouseLeave ( e ) }
197
+ onMouseDown = { ( e ) => e . persist ( ) || onMouseDown ( e ) }
195
198
>
196
199
{ width && height ? (
197
200
< >
@@ -212,7 +215,7 @@ export default React.forwardRef(function ChartInner(
212
215
/>
213
216
< Voronoi />
214
217
< g className = "axes" >
215
- { [ ...primaryAxes , ...secondaryAxes ] . map ( axis => (
218
+ { [ ...primaryAxes , ...secondaryAxes ] . map ( ( axis ) => (
216
219
< Axis key = { axis . id } { ...axis } />
217
220
) ) }
218
221
</ g >
@@ -234,5 +237,5 @@ export default React.forwardRef(function ChartInner(
234
237
< Brush />
235
238
< Tooltip />
236
239
</ div >
237
- )
238
- } )
240
+ ) ;
241
+ } ) ;
0 commit comments