feat: re-populate default reminder enabled state when loading settings

This commit is contained in:
kolaente 2022-09-08 16:47:12 +02:00
parent 8baafab456
commit 28312081ae
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 19 additions and 11 deletions

View File

@ -16,7 +16,7 @@ function calculateDefaultReminderSeconds(type: string, amount: number): number {
case 'months': case 'months':
return amount * 60 * 60 * 24 * 30 return amount * 60 * 60 * 24 * 30
} }
return 0 return 0
} }
@ -29,14 +29,18 @@ export function saveDefaultReminder(enabled: boolean, type: string, amount: numb
} }
export function getDefaultReminderAmount(): number | null { export function getDefaultReminderAmount(): number | null {
const settings = getDefaultReminderSettings()
return settings?.enabled
? settings.amount
: null
}
export function getDefaultReminderSettings(): DefaultReminderSettings | null {
const s: string | null = localStorage.getItem(DEFAULT_REMINDER_KEY) const s: string | null = localStorage.getItem(DEFAULT_REMINDER_KEY)
if (s === null) { if (s === null) {
return null return null
} }
const settings: DefaultReminderSettings = JSON.parse(s) return JSON.parse(s)
return settings.enabled
? settings.amount
: null
} }

View File

@ -20,14 +20,14 @@
</div> </div>
<div class="field"> <div class="field">
<label class="checkbox"> <label class="checkbox">
<input type="checkbox" v-model="settings.defaultReminder"/> <input type="checkbox" v-model="defaultReminderEnabled"/>
{{ $t('user.settings.general.defaultReminder') }} {{ $t('user.settings.general.defaultReminder') }}
</label> </label>
<p class="is-size-7"> <p class="is-size-7">
{{ $t('user.settings.general.defaultReminderHint') }} {{ $t('user.settings.general.defaultReminderHint') }}
</p> </p>
</div> </div>
<div class="field" v-if="settings.defaultReminder"> <div class="field" v-if="defaultReminderEnabled">
<label class="label" for="defaultReminderAmount"> <label class="label" for="defaultReminderAmount">
{{ $t('user.settings.general.defaultReminderAmount') }} {{ $t('user.settings.general.defaultReminderAmount') }}
</label> </label>
@ -219,7 +219,7 @@ import {AuthenticatedHTTPFactory} from '@/http-common'
import {useColorScheme} from '@/composables/useColorScheme' import {useColorScheme} from '@/composables/useColorScheme'
import {useTitle} from '@/composables/useTitle' import {useTitle} from '@/composables/useTitle'
import {objectIsEmpty} from '@/helpers/objectIsEmpty' import {objectIsEmpty} from '@/helpers/objectIsEmpty'
import {saveDefaultReminder} from '@/helpers/defaultReminder' import {getDefaultReminderSettings, saveDefaultReminder} from '@/helpers/defaultReminder'
const {t} = useI18n({useScope: 'global'}) const {t} = useI18n({useScope: 'global'})
useTitle(() => `${t('user.settings.general.title')} - ${t('user.settings.title')}`) useTitle(() => `${t('user.settings.general.title')} - ${t('user.settings.title')}`)
@ -311,13 +311,17 @@ watch(
async function updateSettings() { async function updateSettings() {
localStorage.setItem(playSoundWhenDoneKey, playSoundWhenDone.value ? 'true' : 'false') localStorage.setItem(playSoundWhenDoneKey, playSoundWhenDone.value ? 'true' : 'false')
setQuickAddMagicMode(quickAddMagicMode.value) setQuickAddMagicMode(quickAddMagicMode.value)
saveDefaultReminder(settings.value.defaultReminder, defaultReminderAmountType.value, defaultReminderAmount.value) saveDefaultReminder(defaultReminderEnabled.value, defaultReminderAmountType.value, defaultReminderAmount.value)
await authStore.saveUserSettings({ await authStore.saveUserSettings({
settings: {...settings.value}, settings: {...settings.value},
}) })
} }
const reminderSettings = getDefaultReminderSettings()
const defaultReminderEnabled = ref<boolean>(reminderSettings?.enabled || false)
// TODO: re-populate amount and type
const defaultReminderAmount = ref(1) const defaultReminderAmount = ref(1)
const defaultReminderAmountType = ref('days') const defaultReminderAmountType = ref('days')
</script> </script>