This is an automated email from the ASF dual-hosted git repository.
kgabryje pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 98bf878d6e fix(explore): Enable saving metric after changing title
(#23020)
98bf878d6e is described below
commit 98bf878d6ea263d4747cf4b7c23bc52555b177e7
Author: Kamil Gabryjelski <[email protected]>
AuthorDate: Tue Feb 7 23:23:52 2023 +0100
fix(explore): Enable saving metric after changing title (#23020)
---
.../AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx | 10 ++++++++++
.../controls/MetricControl/AdhocMetricEditPopover/index.jsx | 3 +++
.../controls/MetricControl/AdhocMetricPopoverTrigger.tsx | 4 ++++
3 files changed, 17 insertions(+)
diff --git
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
index 3614e7222c..78add77814 100644
---
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
+++
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/AdhocMetricEditPopover.test.tsx
@@ -162,6 +162,16 @@ test('Clicking on "Save" should call onChange and onClose
for new metric', () =>
expect(props.onClose).toBeCalledTimes(1);
});
+test('Clicking on "Save" should call onChange and onClose for new title', ()
=> {
+ const props = createProps();
+ render(<AdhocMetricEditPopover {...props} isLabelModified />);
+ expect(props.onChange).toBeCalledTimes(0);
+ expect(props.onClose).toBeCalledTimes(0);
+ userEvent.click(screen.getByRole('button', { name: 'Save' }));
+ expect(props.onChange).toBeCalledTimes(1);
+ expect(props.onClose).toBeCalledTimes(1);
+});
+
test('Should switch to tab:Simple', () => {
const props = createProps();
props.getCurrentTab.mockImplementation(tab => {
diff --git
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
index c824d1e929..9ed817f283 100644
---
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
+++
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/index.jsx
@@ -62,6 +62,7 @@ const propTypes = {
savedMetric: savedMetricType,
datasource: PropTypes.object,
isNewMetric: PropTypes.bool,
+ isLabelModified: PropTypes.bool,
};
const defaultProps = {
@@ -299,6 +300,7 @@ export default class AdhocMetricEditPopover extends
React.PureComponent {
onResize,
datasource,
isNewMetric,
+ isLabelModified,
...popoverProps
} = this.props;
const { adhocMetric, savedMetric } = this.state;
@@ -345,6 +347,7 @@ export default class AdhocMetricEditPopover extends
React.PureComponent {
const stateIsValid = adhocMetric.isValid() || savedMetric?.metric_name;
const hasUnsavedChanges =
+ isLabelModified ||
isNewMetric ||
!adhocMetric.equals(propsAdhocMetric) ||
(!(
diff --git
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
index c593cc2ee8..f423c2651a 100644
---
a/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
+++
b/superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricPopoverTrigger.tsx
@@ -225,6 +225,10 @@ class AdhocMetricPopoverTrigger extends
React.PureComponent<
getCurrentTab={this.getCurrentTab}
getCurrentLabel={this.getCurrentLabel}
isNewMetric={this.props.isNew}
+ isLabelModified={
+ this.state.labelModified &&
+ adhocMetricLabel !== this.state.title.label
+ }
/>
</ExplorePopoverContent>
);