@@ -307,6 +307,9 @@ function ChartInner<TDatum>({
307307
308308 const [ axisDimensions ] = axisDimensionsState
309309
310+ const isInteractingState = React . useState < boolean > ( false )
311+ const [ isInteracting ] = isInteractingState
312+
310313 const focusedDatumState = React . useState < Datum < TDatum > | null > ( null )
311314 const [ focusedDatum ] = focusedDatumState
312315
@@ -464,11 +467,19 @@ function ChartInner<TDatum>({
464467 } , [ allDatums , gridDimensions , height , secondaryAxesOptions , series , width ] )
465468
466469 const [ datumsByInteractionGroup , datumsByTooltipGroup ] = React . useMemo ( ( ) => {
470+ if ( ! isInteracting ) {
471+ return [ new Map ( ) , new Map ( ) ]
472+ }
473+
467474 const datumsByInteractionGroup = new Map < any , Datum < TDatum > [ ] > ( )
468475 const datumsByTooltipGroup = new Map < any , Datum < TDatum > [ ] > ( )
469476
477+ const allBarAndNotStacked = secondaryAxes . every (
478+ d => d . elementType === 'bar' && ! d . stacked
479+ )
480+
470481 let getInteractionPrimary = ( datum : Datum < TDatum > ) => {
471- if ( secondaryAxes . every ( d => d . elementType === 'bar' && ! d . stacked ) ) {
482+ if ( allBarAndNotStacked ) {
472483 const secondaryAxis = secondaryAxes . find (
473484 d => d . id === datum . secondaryAxisId
474485 ) !
@@ -537,6 +548,7 @@ function ChartInner<TDatum>({
537548
538549 return [ datumsByInteractionGroup , datumsByTooltipGroup ]
539550 } , [
551+ isInteracting ,
540552 allDatums ,
541553 options . interactionMode ,
542554 primaryAxis ,
@@ -615,6 +627,7 @@ function ChartInner<TDatum>({
615627 axisDimensionsState,
616628 focusedDatumState,
617629 svgRef,
630+ isInteractingState,
618631 }
619632
620633 const seriesByAxisId = React . useMemo (
@@ -696,6 +709,12 @@ function ChartInner<TDatum>({
696709 overflow : options . brush ? 'hidden' : 'visible' ,
697710 } }
698711 onClick = { e => options . onClickDatum ?.( focusedDatum , e ) }
712+ onMouseEnter = { ( ) => {
713+ isInteractingState [ 1 ] ( true )
714+ } }
715+ onMouseLeave = { ( ) => {
716+ isInteractingState [ 1 ] ( false )
717+ } }
699718 >
700719 < g className = "axes" >
701720 { [ primaryAxis , ...secondaryAxes ] . map ( axis => (
0 commit comments