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 28c50d99616..3b250597d61 100644 --- a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts +++ b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts @@ -242,8 +242,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]; @@ -398,10 +400,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; @@ -469,10 +473,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;