This is an automated email from the ASF dual-hosted git repository.
sbin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new a77c2d550c fix(mixed-timeseries): prevent duplicate legend entries
(#37217)
a77c2d550c is described below
commit a77c2d550c659e3020211e353296ccb891d927d3
Author: Yousuf Ansari <[email protected]>
AuthorDate: Sun Jan 18 03:03:33 2026 +0530
fix(mixed-timeseries): prevent duplicate legend entries (#37217)
---
.../src/MixedTimeseries/transformProps.ts | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git
a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
index ebc13fcb39..3a9f945465 100644
---
a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
+++
b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
@@ -246,8 +246,10 @@ export default function transformProps(
},
);
- const MetricDisplayNameA = getMetricDisplayName(metrics[0], verboseMap);
- const MetricDisplayNameB = getMetricDisplayName(metricsB[0], verboseMap);
+ const MetricDisplayNameA: string =
+ getMetricDisplayName(metrics[0], verboseMap) || '';
+ const MetricDisplayNameB: string =
+ getMetricDisplayName(metricsB[0], verboseMap) || '';
const dataTypes = getColtypesMapping(queriesData[0]);
const xAxisDataType = dataTypes?.[xAxisLabel] ?? dataTypes?.[xAxisOrig];
@@ -420,10 +422,12 @@ export default function transformProps(
if (groupby.length > 0) {
// When we have groupby, format as "metric, dimension"
- const metricPart = showQueryIdentifiers
+ const metricPart: string = showQueryIdentifiers
? `${MetricDisplayNameA} (Query A)`
: MetricDisplayNameA;
- displayName = `${metricPart}, ${entryName}`;
+ displayName = entryName.includes(metricPart)
+ ? entryName
+ : `${metricPart}, ${entryName}`;
} else {
// When no groupby, format as just the entry name with optional query
identifier
displayName = showQueryIdentifiers ? `${entryName} (Query A)` :
entryName;
@@ -491,10 +495,12 @@ export default function transformProps(
if (groupbyB.length > 0) {
// When we have groupby, format as "metric, dimension"
- const metricPart = showQueryIdentifiers
+ const metricPart: string = showQueryIdentifiers
? `${MetricDisplayNameB} (Query B)`
: MetricDisplayNameB;
- displayName = `${metricPart}, ${entryName}`;
+ displayName = entryName.includes(metricPart)
+ ? entryName
+ : `${metricPart}, ${entryName}`;
} else {
// When no groupby, format as just the entry name with optional query
identifier
displayName = showQueryIdentifiers ? `${entryName} (Query B)` :
entryName;