This is an automated email from the ASF dual-hosted git repository.

msyavuz pushed a commit to branch msyavuz/fix/drill-by-multi-metric
in repository https://gitbox.apache.org/repos/asf/superset.git

commit fa81e629745aed545da1cb3374c9cb84cc98b6f8
Author: Mehmet Salih Yavuz <salih.ya...@proton.me>
AuthorDate: Tue Jul 15 13:02:19 2025 +0300

    fix(DrillBy): make drill by work with multi metric and dimensioned charts
---
 .../plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx  | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git 
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx
 
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx
index 7bfab8e3ef..79bec925a8 100644
--- 
a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx
+++ 
b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.tsx
@@ -209,12 +209,18 @@ export default function EchartsTimeseries({
           }),
         );
         groupBy.forEach((dimension, i) => {
-          const val = labelMap[seriesName][i];
+          const dimensionValues = labelMap[seriesName] ?? [];
+
+          // Skip the metric values at the beginning and get the actual 
dimension value
+          // If we have multiple metrics, they come first, then the dimension 
values
+          const metricsCount = dimensionValues.length - groupBy.length;
+          const val = dimensionValues[metricsCount + i];
+
           drillByFilters.push({
             col: dimension,
             op: '==',
             val,
-            formattedVal: formatSeriesName(values[i], {
+            formattedVal: formatSeriesName(val, {
               timeFormatter: getTimeFormatter(formData.dateFormat),
               numberFormatter: getNumberFormatter(formData.numberFormat),
               coltype: coltypeMapping?.[getColumnLabel(dimension)],

Reply via email to