From 14ccbe43b3219f7c2bdea953d84a94da4b3cc2ef Mon Sep 17 00:00:00 2001 From: Kamil Gabryjelski Date: Sat, 9 Jan 2021 15:05:25 +0100 Subject: [PATCH] Fix new metric popover showing previous popover's title (#12385) --- .../components/AdhocMetricEditPopoverTitle.jsx | 1 - .../components/AdhocMetricPopoverTrigger.tsx | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/superset-frontend/src/explore/components/AdhocMetricEditPopoverTitle.jsx b/superset-frontend/src/explore/components/AdhocMetricEditPopoverTitle.jsx index 61347b469..08eb9e855 100644 --- a/superset-frontend/src/explore/components/AdhocMetricEditPopoverTitle.jsx +++ b/superset-frontend/src/explore/components/AdhocMetricEditPopoverTitle.jsx @@ -26,7 +26,6 @@ const propTypes = { label: PropTypes.string, hasCustomLabel: PropTypes.bool, }), - defaultLabel: PropTypes.string, onChange: PropTypes.func.isRequired, }; diff --git a/superset-frontend/src/explore/components/AdhocMetricPopoverTrigger.tsx b/superset-frontend/src/explore/components/AdhocMetricPopoverTrigger.tsx index 8b9fd472b..6179816d6 100644 --- a/superset-frontend/src/explore/components/AdhocMetricPopoverTrigger.tsx +++ b/superset-frontend/src/explore/components/AdhocMetricPopoverTrigger.tsx @@ -37,6 +37,7 @@ export type AdhocMetricPopoverTriggerProps = { export type AdhocMetricPopoverTriggerState = { popoverVisible: boolean; title: { label: string; hasCustomLabel: boolean }; + labelModified: boolean; }; class AdhocMetricPopoverTrigger extends React.PureComponent< @@ -55,6 +56,7 @@ class AdhocMetricPopoverTrigger extends React.PureComponent< label: props.adhocMetric.label, hasCustomLabel: props.adhocMetric.hasCustomLabel, }, + labelModified: false, }; } @@ -65,6 +67,7 @@ class AdhocMetricPopoverTrigger extends React.PureComponent< label: label || this.props.adhocMetric.label, hasCustomLabel: !!label, }, + labelModified: true, }); } @@ -74,6 +77,9 @@ class AdhocMetricPopoverTrigger extends React.PureComponent< closePopover() { this.togglePopover(false); + this.setState({ + labelModified: false, + }); } togglePopover(visible: boolean) { @@ -84,11 +90,15 @@ class AdhocMetricPopoverTrigger extends React.PureComponent< render() { const { adhocMetric } = this.props; + const { label, hasCustomLabel } = adhocMetric; + const title = this.state.labelModified + ? this.state.title + : { label, hasCustomLabel }; const overlayContent = ( );