Add new silence
-
diff --git a/ui/src/Components/SilenceModal/index.js b/ui/src/Components/SilenceModal/index.js
index 77c24c20b..5ada556d4 100644
--- a/ui/src/Components/SilenceModal/index.js
+++ b/ui/src/Components/SilenceModal/index.js
@@ -18,6 +18,18 @@ const SilenceModal = observer(
settingsStore: PropTypes.object.isRequired
};
+ toggleModal = () => {
+ const { silenceFormStore } = this.props;
+
+ silenceFormStore.toggle.toggle();
+ if (silenceFormStore.toggle.visible === false) {
+ // need to reset progress if we're hiding modal
+ // SilenceSubmitProgress sends a fetch on mount which would result in
+ // duplicate silences if we didn't reset state of the form on destroy
+ silenceFormStore.data.resetProgress();
+ }
+ };
+
componentDidUpdate() {
const { silenceFormStore } = this.props;
@@ -37,10 +49,7 @@ const SilenceModal = observer(
return (
-
+
@@ -49,6 +58,7 @@ const SilenceModal = observer(
alertStore={alertStore}
silenceFormStore={silenceFormStore}
settingsStore={settingsStore}
+ onHide={this.toggleModal}
/>
) : null}
diff --git a/ui/src/Components/SilenceModal/index.test.js b/ui/src/Components/SilenceModal/index.test.js
index ad858cf0e..b1aa3d359 100644
--- a/ui/src/Components/SilenceModal/index.test.js
+++ b/ui/src/Components/SilenceModal/index.test.js
@@ -93,4 +93,13 @@ describe("
", () => {
tree.unmount();
expect(document.body.className.split(" ")).not.toContain("modal-open");
});
+
+ it("inProgress is set to false after modal is hidden", () => {
+ silenceFormStore.toggle.visible = true;
+ const tree = MountedSilenceModal();
+ silenceFormStore.data.inProgress = true;
+ const toggle = tree.find("button.close");
+ toggle.simulate("click");
+ expect(silenceFormStore.data.inProgress).toBe(false);
+ });
});