@@ -307,6 +307,9 @@ function ChartInner<TDatum>({
307
307
308
308
const [ axisDimensions ] = axisDimensionsState
309
309
310
+ const isInteractingState = React . useState < boolean > ( false )
311
+ const [ isInteracting ] = isInteractingState
312
+
310
313
const focusedDatumState = React . useState < Datum < TDatum > | null > ( null )
311
314
const [ focusedDatum ] = focusedDatumState
312
315
@@ -464,11 +467,19 @@ function ChartInner<TDatum>({
464
467
} , [ allDatums , gridDimensions , height , secondaryAxesOptions , series , width ] )
465
468
466
469
const [ datumsByInteractionGroup , datumsByTooltipGroup ] = React . useMemo ( ( ) => {
470
+ if ( ! isInteracting ) {
471
+ return [ new Map ( ) , new Map ( ) ]
472
+ }
473
+
467
474
const datumsByInteractionGroup = new Map < any , Datum < TDatum > [ ] > ( )
468
475
const datumsByTooltipGroup = new Map < any , Datum < TDatum > [ ] > ( )
469
476
477
+ const allBarAndNotStacked = secondaryAxes . every (
478
+ d => d . elementType === 'bar' && ! d . stacked
479
+ )
480
+
470
481
let getInteractionPrimary = ( datum : Datum < TDatum > ) => {
471
- if ( secondaryAxes . every ( d => d . elementType === 'bar' && ! d . stacked ) ) {
482
+ if ( allBarAndNotStacked ) {
472
483
const secondaryAxis = secondaryAxes . find (
473
484
d => d . id === datum . secondaryAxisId
474
485
) !
@@ -537,6 +548,7 @@ function ChartInner<TDatum>({
537
548
538
549
return [ datumsByInteractionGroup , datumsByTooltipGroup ]
539
550
} , [
551
+ isInteracting ,
540
552
allDatums ,
541
553
options . interactionMode ,
542
554
primaryAxis ,
@@ -615,6 +627,7 @@ function ChartInner<TDatum>({
615
627
axisDimensionsState,
616
628
focusedDatumState,
617
629
svgRef,
630
+ isInteractingState,
618
631
}
619
632
620
633
const seriesByAxisId = React . useMemo (
@@ -696,6 +709,12 @@ function ChartInner<TDatum>({
696
709
overflow : options . brush ? 'hidden' : 'visible' ,
697
710
} }
698
711
onClick = { e => options . onClickDatum ?.( focusedDatum , e ) }
712
+ onMouseEnter = { ( ) => {
713
+ isInteractingState [ 1 ] ( true )
714
+ } }
715
+ onMouseLeave = { ( ) => {
716
+ isInteractingState [ 1 ] ( false )
717
+ } }
699
718
>
700
719
< g className = "axes" >
701
720
{ [ primaryAxis , ...secondaryAxes ] . map ( axis => (
0 commit comments