From 475f9cdc35aa325f98bfbd03e04c70ef3a53db28 Mon Sep 17 00:00:00 2001 From: Geido <60598000+geido@users.noreply.github.com> Date: Mon, 2 Aug 2021 11:16:01 +0200 Subject: [PATCH] fix: Sort Metrics by ID DESC (order of creation) in the Datasource Editor (#15971) * Sort metrics by ID * Fix undefined metrics --- .../src/datasource/DatasourceEditor.jsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/superset-frontend/src/datasource/DatasourceEditor.jsx b/superset-frontend/src/datasource/DatasourceEditor.jsx index faf38f6c2a8..046f14f1e6b 100644 --- a/superset-frontend/src/datasource/DatasourceEditor.jsx +++ b/superset-frontend/src/datasource/DatasourceEditor.jsx @@ -571,6 +571,10 @@ class DatasourceEditor extends React.PureComponent { this.setState({ activeTabKey }); } + sortMetrics(metrics) { + return metrics.sort(({ id: a }, { id: b }) => b - a); + } + renderSettingsFieldset() { const { datasource } = this.state; return ( @@ -910,6 +914,10 @@ class DatasourceEditor extends React.PureComponent { } renderMetricCollection() { + const { datasource } = this.state; + const { metrics } = datasource; + const sortedMetrics = metrics?.length ? this.sortMetrics(metrics) : []; + return ( } - collection={this.state.datasource.metrics} + collection={sortedMetrics} allowAddItem onChange={this.onDatasourcePropChange.bind(this, 'metrics')} itemGenerator={() => ({ @@ -1041,6 +1049,9 @@ class DatasourceEditor extends React.PureComponent { render() { const { datasource, activeTabKey } = this.state; + const { metrics } = datasource; + const sortedMetrics = metrics?.length ? this.sortMetrics(metrics) : []; + return ( {this.renderErrors()} @@ -1070,7 +1081,7 @@ class DatasourceEditor extends React.PureComponent { }