diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/operators/utils/extractExtraMetrics.ts b/superset-frontend/packages/superset-ui-chart-controls/src/operators/utils/extractExtraMetrics.ts index 28d9ec40ad..4344d088af 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/operators/utils/extractExtraMetrics.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/operators/utils/extractExtraMetrics.ts @@ -17,6 +17,7 @@ * under the License. */ import { + ensureIsArray, getMetricLabel, QueryFormData, QueryFormMetric, @@ -27,13 +28,14 @@ export function extractExtraMetrics( ): QueryFormMetric[] { const { groupby, timeseries_limit_metric, x_axis_sort, metrics } = formData; const extra_metrics: QueryFormMetric[] = []; + const limitMetric = ensureIsArray(timeseries_limit_metric)[0]; if ( !(groupby || []).length && - timeseries_limit_metric && - getMetricLabel(timeseries_limit_metric) === x_axis_sort && + limitMetric && + getMetricLabel(limitMetric) === x_axis_sort && !metrics?.some(metric => getMetricLabel(metric) === x_axis_sort) ) { - extra_metrics.push(timeseries_limit_metric); + extra_metrics.push(limitMetric); } return extra_metrics; } diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/operators/utils/extractExtraMetrics.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/operators/utils/extractExtraMetrics.test.ts index b7c1bf0475..c2405a863a 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/operators/utils/extractExtraMetrics.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/operators/utils/extractExtraMetrics.test.ts @@ -124,3 +124,13 @@ test('returns empty array if timeseries_limit_metric and x_axis_sort are include }), ).toEqual([]); }); + +test('returns emoty array if timeseries_limit_metric is an empty array', () => { + expect( + extractExtraMetrics({ + ...baseFormData, + // @ts-ignore + timeseries_limit_metric: [], + }), + ).toEqual([]); +});