diff --git a/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.jsx b/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.jsx index a4916e95dca..69e8f575007 100644 --- a/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.jsx +++ b/superset-frontend/src/explore/components/controls/MetricControl/MetricsControl.jsx @@ -64,11 +64,16 @@ const defaultProps = { columns: [], }; -function getOptionsForSavedMetrics(savedMetrics, currentMetricValues) { +function getOptionsForSavedMetrics( + savedMetrics, + currentMetricValues, + currentMetric, +) { return ( savedMetrics?.filter(savedMetric => Array.isArray(currentMetricValues) - ? !currentMetricValues.includes(savedMetric.metric_name) + ? !currentMetricValues.includes(savedMetric.metric_name) || + savedMetric.metric_name === currentMetric : savedMetric, ) ?? [] ); @@ -144,6 +149,7 @@ class MetricsControl extends React.PureComponent { savedMetricsOptions={getOptionsForSavedMetrics( this.props.savedMetrics, this.props.value, + this.props.value?.[index], )} datasourceType={this.props.datasourceType} onMoveLabel={this.moveLabel} @@ -285,6 +291,7 @@ class MetricsControl extends React.PureComponent { savedMetricsOptions={getOptionsForSavedMetrics( this.props.savedMetrics, this.props.value, + null, )} savedMetric={{}} datasourceType={this.props.datasourceType}