From b65773eb8f37fffb3a99411831c56684707f3b1c Mon Sep 17 00:00:00 2001 From: kolaente Date: Mon, 9 Feb 2026 15:10:42 +0100 Subject: [PATCH] fix(task): require explicit confirmation before saving reminders Prevent reminders from being saved to the API until the user clicks Confirm, matching the behavior of the due/start/end date pickers. - Remove @update:modelValue handler on DatepickerInline so date/time changes only update local state - Change Confirm button condition from showFormSwitch to activeForm so it renders even when defaultRelativeTo is null - Add confirmAndClose function that handles both absolute and relative reminder forms - Remove debounce (useDebounceFn) since saves are now user-initiated Refs #2208 --- .../tasks/partials/ReminderDetail.vue | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/tasks/partials/ReminderDetail.vue b/frontend/src/components/tasks/partials/ReminderDetail.vue index ec3c9dcf9..a549154b7 100644 --- a/frontend/src/components/tasks/partials/ReminderDetail.vue +++ b/frontend/src/components/tasks/partials/ReminderDetail.vue @@ -52,14 +52,13 @@ {{ $t('misc.confirm') }} @@ -86,7 +85,6 @@ import Popup from '@/components/misc/Popup.vue' import TaskReminderModel from '@/models/taskReminder' import Card from '@/components/misc/Card.vue' import SimpleButton from '@/components/input/SimpleButton.vue' -import {useDebounceFn} from '@vueuse/core' const props = withDefaults(defineProps<{ modelValue?: ITaskReminder, @@ -170,7 +168,7 @@ function setReminderDateAndClose(close: () => void) { : new Date(reminderDate.value) reminder.value.relativeTo = null reminder.value.relativePeriod = 0 - updateDataAndMaybeClose(close) + updateDataAndMaybeCloseNow(close) } @@ -180,8 +178,6 @@ function setReminderFromPreset(preset: ITaskReminder, close: () => void) { close() } -const updateDataAndMaybeClose = useDebounceFn(updateDataAndMaybeCloseNow, 500) - function updateDataAndMaybeCloseNow(close: () => void) { updateData() if (props.clearAfterUpdate) { @@ -189,6 +185,14 @@ function updateDataAndMaybeCloseNow(close: () => void) { } } +function confirmAndClose(close: () => void) { + if (activeForm.value === 'absolute') { + setReminderDateAndClose(close) + } else { + updateDataAndMaybeCloseNow(close) + } +} + function formatReminder(reminder: ITaskReminder) { const period = secondsToPeriod(reminder.relativePeriod)