diff --git a/ui/src/Components/SilenceModal/index.js b/ui/src/Components/SilenceModal/index.js
index b70f13809..400a261d2 100644
--- a/ui/src/Components/SilenceModal/index.js
+++ b/ui/src/Components/SilenceModal/index.js
@@ -23,18 +23,6 @@ const SilenceModal = observer(
settingsStore: PropTypes.instanceOf(Settings).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();
- }
- };
-
render() {
const { alertStore, silenceFormStore, settingsStore } = this.props;
@@ -44,18 +32,21 @@ const SilenceModal = observer(
-
+
diff --git a/ui/src/Components/SilenceModal/index.test.js b/ui/src/Components/SilenceModal/index.test.js
index c2aaef799..0954eb3e0 100644
--- a/ui/src/Components/SilenceModal/index.test.js
+++ b/ui/src/Components/SilenceModal/index.test.js
@@ -4,7 +4,7 @@ import { mount } from "enzyme";
import { AlertStore } from "Stores/AlertStore";
import { Settings } from "Stores/Settings";
-import { SilenceFormStore } from "Stores/SilenceFormStore";
+import { SilenceFormStore, SilenceFormStage } from "Stores/SilenceFormStore";
import { SilenceModal } from ".";
let alertStore;
@@ -77,6 +77,24 @@ describe("", () => {
expect(tree.find("SilenceModalContent")).toHaveLength(0);
});
+ it("resets progress on hide", () => {
+ const tree = MountedSilenceModal();
+ const toggle = tree.find(".nav-link");
+ toggle.simulate("click");
+
+ // mark form as dirty, resetProgress() should change this value to false
+ silenceFormStore.data.wasValidated = true;
+
+ // click to hide
+ toggle.simulate("click");
+ // wait for animation to finish
+ jest.runOnlyPendingTimers();
+ tree.update();
+ // form should be reset
+ expect(silenceFormStore.data.currentStage).toBe(SilenceFormStage.UserInput);
+ expect(silenceFormStore.data.wasValidated).toBe(false);
+ });
+
it("'modal-open' class is appended to body node when modal is visible", () => {
const tree = MountedSilenceModal();
const toggle = tree.find(".nav-link");