fix(reminders): emit reminder changes at the correct time (and make sure they are actually emitted)
Resolves https://github.com/go-vikunja/vikunja/issues/225
This commit is contained in:
parent
1de39b1cd1
commit
ccb708a56f
@ -73,10 +73,10 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import {computed, ref, watch} from 'vue'
|
import {computed, ref, watch} from 'vue'
|
||||||
import {SECONDS_A_DAY, SECONDS_A_HOUR} from '@/constants/date'
|
import {SECONDS_A_DAY, SECONDS_A_HOUR} from '@/constants/date'
|
||||||
import {IReminderPeriodRelativeTo, REMINDER_PERIOD_RELATIVE_TO_TYPES} from '@/types/IReminderPeriodRelativeTo'
|
import {type IReminderPeriodRelativeTo, REMINDER_PERIOD_RELATIVE_TO_TYPES} from '@/types/IReminderPeriodRelativeTo'
|
||||||
import {useI18n} from 'vue-i18n'
|
import {useI18n} from 'vue-i18n'
|
||||||
|
|
||||||
import {PeriodUnit, secondsToPeriod} from '@/helpers/time/period'
|
import {type PeriodUnit, secondsToPeriod} from '@/helpers/time/period'
|
||||||
import type {ITaskReminder} from '@/modelTypes/ITaskReminder'
|
import type {ITaskReminder} from '@/modelTypes/ITaskReminder'
|
||||||
import {formatDateShort} from '@/helpers/time/formatDate'
|
import {formatDateShort} from '@/helpers/time/formatDate'
|
||||||
|
|
||||||
@ -87,6 +87,7 @@ import Popup from '@/components/misc/popup.vue'
|
|||||||
import TaskReminderModel from '@/models/taskReminder'
|
import TaskReminderModel from '@/models/taskReminder'
|
||||||
import Card from '@/components/misc/card.vue'
|
import Card from '@/components/misc/card.vue'
|
||||||
import SimpleButton from '@/components/input/SimpleButton.vue'
|
import SimpleButton from '@/components/input/SimpleButton.vue'
|
||||||
|
import {useDebounceFn} from '@vueuse/core'
|
||||||
|
|
||||||
const {
|
const {
|
||||||
modelValue,
|
modelValue,
|
||||||
@ -181,8 +182,9 @@ function setReminderFromPreset(preset, close) {
|
|||||||
close()
|
close()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const updateDataDebounced = useDebounceFn(updateData, 1000)
|
||||||
function updateDataAndMaybeClose(close) {
|
function updateDataAndMaybeClose(close) {
|
||||||
updateData()
|
updateDataDebounced()
|
||||||
if (clearAfterUpdate) {
|
if (clearAfterUpdate) {
|
||||||
close()
|
close()
|
||||||
}
|
}
|
||||||
|
@ -71,8 +71,7 @@ import {periodToSeconds, PeriodUnit, secondsToPeriod} from '@/helpers/time/perio
|
|||||||
import TaskReminderModel from '@/models/taskReminder'
|
import TaskReminderModel from '@/models/taskReminder'
|
||||||
|
|
||||||
import type {ITaskReminder} from '@/modelTypes/ITaskReminder'
|
import type {ITaskReminder} from '@/modelTypes/ITaskReminder'
|
||||||
import {REMINDER_PERIOD_RELATIVE_TO_TYPES, type IReminderPeriodRelativeTo} from '@/types/IReminderPeriodRelativeTo'
|
import {type IReminderPeriodRelativeTo, REMINDER_PERIOD_RELATIVE_TO_TYPES} from '@/types/IReminderPeriodRelativeTo'
|
||||||
import {useDebounceFn} from '@vueuse/core'
|
|
||||||
|
|
||||||
const {
|
const {
|
||||||
modelValue,
|
modelValue,
|
||||||
@ -123,7 +122,7 @@ function updateData() {
|
|||||||
reminder.value.relativeTo = period.value.relativeTo
|
reminder.value.relativeTo = period.value.relativeTo
|
||||||
reminder.value.reminder = null
|
reminder.value.reminder = null
|
||||||
|
|
||||||
useDebounceFn(() => emit('update:modelValue', reminder.value), 1000)
|
emit('update:modelValue', reminder.value)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user