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 { }