actual countdown
This commit is contained in:
parent
4edf6b03ce
commit
db7e4a3434
5 changed files with 21 additions and 9 deletions
|
|
@ -170,7 +170,7 @@ const SettingsModal = {
|
|||
},
|
||||
computed: {
|
||||
...mapState(useInterfaceStore, {
|
||||
temporaryChangesTimeoutId: store => store.temporaryChangesTimeoutId,
|
||||
temporaryChangesCountdown: store => store.temporaryChangesCountdown,
|
||||
currentSaveStateNotice: store => store.settings.currentSaveStateNotice,
|
||||
modalActivated: store => store.settingsModalState !== 'hidden',
|
||||
modalMode: store => store.settingsModalMode,
|
||||
|
|
|
|||
|
|
@ -158,14 +158,14 @@
|
|||
</div>
|
||||
<teleport to="#modal">
|
||||
<ConfirmModal
|
||||
v-if="temporaryChangesTimeoutId"
|
||||
v-if="temporaryChangesCountdown > 0"
|
||||
:title="$t('settings.confirm_new_setting')"
|
||||
:cancel-text="$t('settings.revert')"
|
||||
:confirm-text="$t('settings.confirm')"
|
||||
@cancelled="temporaryChangesRevert"
|
||||
@accepted="temporaryChangesConfirm"
|
||||
>
|
||||
{{ $t('settings.confirm_new_question') }}
|
||||
{{ $t('settings.confirm_new_question_countdown', temporaryChangesCountdown) }}
|
||||
</ConfirmModal>
|
||||
</teleport>
|
||||
</Modal>
|
||||
|
|
|
|||
|
|
@ -411,6 +411,7 @@
|
|||
"appearance": "Appearance",
|
||||
"confirm_new_setting": "Confirm new setting?",
|
||||
"confirm_new_question": "Does this look ok? Setting will be reverted in 10 seconds.",
|
||||
"confirm_new_question_countdown": "Does this look ok? Setting will be reverted in 1 second. | Does this look ok? Setting will be reverted in {count} seconds.",
|
||||
"revert": "Revert",
|
||||
"confirm": "Confirm",
|
||||
"text_size": "Text and interface size",
|
||||
|
|
|
|||
|
|
@ -116,7 +116,6 @@ const config = {
|
|||
}
|
||||
|
||||
useInterfaceStore().setTemporaryChanges({
|
||||
timeoutId: setTimeout(revert, 10000),
|
||||
confirm,
|
||||
revert
|
||||
})
|
||||
|
|
|
|||
|
|
@ -18,9 +18,10 @@ export const useInterfaceStore = defineStore('interface', {
|
|||
paletteDataUsed: null,
|
||||
themeNameUsed: null,
|
||||
themeDataUsed: null,
|
||||
temporaryChangesTimeoutId: null, // used for temporary options that revert after a timeout
|
||||
temporaryChangesTimeoutId: null,
|
||||
temporaryChangesCountdown: -1, // used for temporary options that revert after a timeout
|
||||
temporaryChangesConfirm: () => {}, // used for applying temporary options
|
||||
temporaryChangesRevert: () => {}, // used for reverting temporary options
|
||||
temporaryChangesRevert: () => {}, // used for reverting temporary options
|
||||
settingsModalState: 'hidden',
|
||||
settingsModalLoadedUser: false,
|
||||
settingsModalLoadedAdmin: false,
|
||||
|
|
@ -44,14 +45,25 @@ export const useInterfaceStore = defineStore('interface', {
|
|||
lastTimeline: null
|
||||
}),
|
||||
actions: {
|
||||
setTemporaryChanges ({ timeoutId, confirm, revert }) {
|
||||
this.temporaryChangesTimeoutId = timeoutId
|
||||
setTemporaryChanges ({ confirm, revert }) {
|
||||
this.temporaryChangesCountdown = 10
|
||||
this.temporaryChangesConfirm = confirm
|
||||
this.temporaryChangesRevert = revert
|
||||
const countdownFunc = () => {
|
||||
if (this.temporaryChangesCountdown === 1) {
|
||||
this.temporaryChangesRevert()
|
||||
this.clearTemporaryChanges()
|
||||
} else {
|
||||
this.temporaryChangesCountdown--
|
||||
this.temporaryChangesTimeoutId = setTimeout(countdownFunc, 1000)
|
||||
}
|
||||
}
|
||||
this.temporaryChangesTimeoutId = setTimeout(countdownFunc, 1000)
|
||||
},
|
||||
clearTemporaryChanges () {
|
||||
clearTimeout(this.temporaryChangesTimeoutId)
|
||||
this.temporaryChangesTimeoutId ?? clearTimeout(this.temporaryChangesTimeoutId)
|
||||
this.temporaryChangesTimeoutId = null
|
||||
this.temporaryChangesCountdown = -1
|
||||
this.temporaryChangesConfirm = () => {}
|
||||
this.temporaryChangesRevert = () => {}
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue