From 2e35289c3376881ca17b9330113c816a3327f245 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Sun, 3 May 2020 17:36:12 +0300 Subject: initial work on settings modal --- src/modules/interface.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/modules/interface.js') diff --git a/src/modules/interface.js b/src/modules/interface.js index 5b2762e5..e55b7290 100644 --- a/src/modules/interface.js +++ b/src/modules/interface.js @@ -1,6 +1,7 @@ import { set, delete as del } from 'vue' const defaultState = { + settingsModalState: 'hidden', settings: { currentSaveStateNotice: null, noticeClearTimeout: null, @@ -35,6 +36,24 @@ const interfaceMod = { }, setMobileLayout (state, value) { state.mobileLayout = value + }, + closeSettingsModal (state) { + state.settingsModalState = 'hidden' + }, + togglePeekSettingsModal (state) { + switch (state.settingsModalState) { + case 'minimized': + state.settingsModalState = 'visible' + return + case 'visible': + state.settingsModalState = 'minimized' + return + default: + throw new Error('Illegal minimization state of settings modal') + } + }, + openSettingsModal (state) { + state.settingsModalState = 'visible' } }, actions: { @@ -49,6 +68,15 @@ const interfaceMod = { }, setMobileLayout ({ commit }, value) { commit('setMobileLayout', value) + }, + closeSettingsModal ({ commit }) { + commit('closeSettingsModal') + }, + openSettingsModal ({ commit }) { + commit('openSettingsModal') + }, + togglePeekSettingsModal ({ commit }) { + commit('togglePeekSettingsModal') } } } -- cgit v1.2.3-70-g09d2 From 4fae2f8ea878bedfce89402f19adffaedec65baf Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 2 Jun 2020 01:10:52 +0300 Subject: track if settings modal has been opened once --- src/components/settings_modal/settings_modal.js | 3 +++ src/components/settings_modal/settings_modal.vue | 2 +- src/modules/interface.js | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/modules/interface.js') diff --git a/src/components/settings_modal/settings_modal.js b/src/components/settings_modal/settings_modal.js index caa7c48c..f0d49c91 100644 --- a/src/components/settings_modal/settings_modal.js +++ b/src/components/settings_modal/settings_modal.js @@ -30,6 +30,9 @@ const SettingsModal = { modalActivated () { return this.$store.state.interface.settingsModalState !== 'hidden' }, + modalOpenedOnce () { + return this.$store.state.interface.settingsModalLoaded + }, modalPeeked () { return this.$store.state.interface.settingsModalState === 'minimized' } diff --git a/src/components/settings_modal/settings_modal.vue b/src/components/settings_modal/settings_modal.vue index ded02f4a..6bc64ed0 100644 --- a/src/components/settings_modal/settings_modal.vue +++ b/src/components/settings_modal/settings_modal.vue @@ -43,7 +43,7 @@
- +
diff --git a/src/modules/interface.js b/src/modules/interface.js index e55b7290..eeebd65e 100644 --- a/src/modules/interface.js +++ b/src/modules/interface.js @@ -2,6 +2,7 @@ import { set, delete as del } from 'vue' const defaultState = { settingsModalState: 'hidden', + settingsModalLoaded: false, settings: { currentSaveStateNotice: null, noticeClearTimeout: null, @@ -54,6 +55,9 @@ const interfaceMod = { }, openSettingsModal (state) { state.settingsModalState = 'visible' + if (!state.settingsModalLoaded) { + state.settingsModalLoaded = true + } } }, actions: { -- cgit v1.2.3-70-g09d2