From ae2c960913bca84105883f0567e95ddc47514c30 Mon Sep 17 00:00:00 2001
From: Aleksandr Lesnenko <alxnddr@users.noreply.github.com>
Date: Tue, 11 Jun 2024 22:17:09 -0300
Subject: [PATCH] fix single series bar hover (#43984)

* fix single series bar hover

* prefer reduced motion
---
 .../visualizations/CartesianChart/use-chart-events.ts         | 4 +++-
 .../visualizations/CartesianChart/use-models-and-option.ts    | 4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-chart-events.ts b/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-chart-events.ts
index 461052df06f..dc445665c14 100644
--- a/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-chart-events.ts
+++ b/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-chart-events.ts
@@ -231,8 +231,10 @@ export const useChartEvents = (
           ? settings.series(seriesModel.legacySeriesSettingsObjectKey)
               .display === "bar"
           : false;
+      const shouldHighlightEntireSeries =
+        isBarSeries && chartModel.seriesModels.length > 1;
 
-      if (originalDatumIndex != null && !isBarSeries) {
+      if (originalDatumIndex != null && !shouldHighlightEntireSeries) {
         // (issue #40215)
         // since some transformed datasets have indexes differing from
         // the original datasets indexes and ECharts uses the transformedDataset
diff --git a/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-models-and-option.ts b/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-models-and-option.ts
index be445d0f18b..2b052053fe8 100644
--- a/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-models-and-option.ts
+++ b/frontend/src/metabase/visualizations/visualizations/CartesianChart/use-models-and-option.ts
@@ -1,6 +1,6 @@
 import { useCallback, useMemo } from "react";
 
-import { isCypressActive } from "metabase/env";
+import { isReducedMotionPreferred } from "metabase/lib/dom";
 import { extractRemappings } from "metabase/visualizations";
 import { getChartMeasurements } from "metabase/visualizations/echarts/cartesian/chart-measurements";
 import { getCartesianChartModel } from "metabase/visualizations/echarts/cartesian/model";
@@ -115,7 +115,7 @@ export function useModelsAndOption({
       return {};
     }
 
-    const shouldAnimate = !isPlaceholder && !isCypressActive;
+    const shouldAnimate = !isPlaceholder && !isReducedMotionPreferred();
 
     switch (card.display) {
       case "waterfall":
-- 
GitLab