From 2fa7c8fab95649d15dc804ac918ac38072ccdeae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Sun, 9 Sep 2018 20:51:05 +0100 Subject: [PATCH] fix(ui): reset silence form duration on every mount --- ui/src/Components/SilenceModal/SilenceForm.js | 3 +++ ui/src/Stores/SilenceFormStore.js | 6 ++++++ ui/src/Stores/SilenceFormStore.test.js | 10 ++++++++++ 3 files changed, 19 insertions(+) diff --git a/ui/src/Components/SilenceModal/SilenceForm.js b/ui/src/Components/SilenceModal/SilenceForm.js index b71384f35..9bdcf0ca3 100644 --- a/ui/src/Components/SilenceModal/SilenceForm.js +++ b/ui/src/Components/SilenceModal/SilenceForm.js @@ -75,6 +75,9 @@ const SilenceForm = observer( componentDidMount() { const { silenceFormStore, settingsStore } = this.props; + // reset startsAt & endsAt on every mount + silenceFormStore.data.resetStartEnd(); + if (silenceFormStore.data.matchers.length === 0) { silenceFormStore.data.addEmptyMatcher(); } diff --git a/ui/src/Stores/SilenceFormStore.js b/ui/src/Stores/SilenceFormStore.js index a78e198cd..e8f993619 100644 --- a/ui/src/Stores/SilenceFormStore.js +++ b/ui/src/Stores/SilenceFormStore.js @@ -69,6 +69,11 @@ class SilenceFormStore { return true; }, + resetStartEnd() { + this.startsAt = moment(); + this.endsAt = moment().add(1, "hour"); + }, + resetProgress() { this.inProgress = false; this.wasValidated = false; @@ -193,6 +198,7 @@ class SilenceFormStore { } }, { + resetStartEnd: action.bound, resetProgress: action.bound, addEmptyMatcher: action.bound, deleteMatcher: action.bound, diff --git a/ui/src/Stores/SilenceFormStore.test.js b/ui/src/Stores/SilenceFormStore.test.js index f7566f069..fab7d93b0 100644 --- a/ui/src/Stores/SilenceFormStore.test.js +++ b/ui/src/Stores/SilenceFormStore.test.js @@ -45,6 +45,16 @@ const MockGroup = () => { }; describe("SilenceFormStore.data", () => { + it("resetStartEnd() sets startsAt and endsAt to defaults", () => { + store.data.startsAt = moment([2000, 1, 1, 0, 1, 0]); + store.data.endsAt = moment([2000, 1, 1, 1, 2, 0]); + expect(store.data.startsAt.isSame([2000, 1, 1], "day")).toBe(true); + expect(store.data.endsAt.isSame([2000, 1, 1], "day")).toBe(true); + store.data.resetStartEnd(); + expect(store.data.startsAt.isSame([2000, 1, 1], "day")).toBe(false); + expect(store.data.endsAt.isSame([2000, 1, 1], "day")).toBe(false); + }); + it("resetProgress() sets 'inProgress' to false", () => { store.data.inProgress = true; expect(store.data.inProgress).toBe(true);