@@ -32,7 +32,7 @@ import {
3232import type { FC } from 'react' ;
3333import { useCallback , useId , useLayoutEffect , useMemo , useRef , useState } from 'react' ;
3434import { CartesianGrid , Line , LineChart , ReferenceArea , Tooltip , XAxis , YAxis } from 'recharts' ;
35- import type { CategoricalChartState } from 'recharts/types/chart/types' ;
35+ import type { CategoricalChartFunc } from 'recharts/types/chart/types' ;
3636import { formatInternational } from '../../utils/dates/helpers/date' ;
3737import type { StrictDateRange } from '../../utils/dates/helpers/dateIntervals' ;
3838import { rangeOf } from '../../utils/helpers' ;
@@ -203,9 +203,6 @@ const useActiveDot = (
203203 } ;
204204} ;
205205
206- const payloadFromChartEvent = ( e : CategoricalChartState ) =>
207- e . activePayload ?. [ 0 ] ?. payload as ChartPayloadEntry | undefined ;
208-
209206export type LineChartCardProps = {
210207 visitsGroups : Record < string , VisitsList > ;
211208 setSelectedVisits ?: ( visits : NormalizedVisit [ ] ) => void ;
@@ -274,18 +271,18 @@ export const LineChartCard: FC<LineChartCardProps> = (
274271 setSelectionStart ( undefined ) ;
275272 setSelectionEnd ( undefined ) ;
276273 } , [ ] ) ;
277- const resolveSelectionStart = useCallback ( ( e : CategoricalChartState , mouseEvent : MouseEvent ) => {
278- const payload = payloadFromChartEvent ( e ) ;
279- if ( mouseEvent . button === 0 && payload ) {
274+ const resolveSelectionStart : CategoricalChartFunc = useCallback ( ( e , mouseEvent ) => {
275+ const payload = e . activeIndex && chartData [ e . activeIndex as number ] ;
276+ if ( ( mouseEvent as unknown as MouseEvent ) . button === 0 && payload ) {
280277 setSelectionStart ( payload ) ;
281278 }
282- } , [ ] ) ;
283- const resolveSelectionEnd = useCallback ( ( e : CategoricalChartState ) => {
284- const payload = payloadFromChartEvent ( e ) ;
279+ } , [ chartData ] ) ;
280+ const resolveSelectionEnd : CategoricalChartFunc = useCallback ( ( e ) => {
281+ const payload = e . activeIndex && chartData [ e . activeIndex as number ] ;
285282 if ( selectionStart && payload ) {
286283 setSelectionEnd ( payload ) ;
287284 }
288- } , [ selectionStart ] ) ;
285+ } , [ chartData , selectionStart ] ) ;
289286 const updateDateRange = useCallback ( ( ) => {
290287 if ( ! selectionStart || ! selectionEnd ) {
291288 return ;
0 commit comments