feat(reminders): make adding new reminders less confusing

This commit is contained in:
kolaente 2023-06-09 14:37:26 +02:00
parent 39cc7a00d8
commit 11f94e4037
Signed by untrusted user: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 22 additions and 22 deletions

View File

@ -14,7 +14,7 @@
<SimpleButton <SimpleButton
v-for="p in presets" v-for="p in presets"
class="option-button" class="option-button"
@click="setReminderFromPreset(p)" @click="setReminderFromPreset(p, toggle)"
> >
{{ formatReminder(p) }} {{ formatReminder(p) }}
</SimpleButton> </SimpleButton>
@ -81,6 +81,10 @@ const props = defineProps({
disabled: { disabled: {
default: false, default: false,
}, },
clearAfterUpdate: {
type: Boolean,
default: false,
},
}) })
const emit = defineEmits(['update:modelValue']) const emit = defineEmits(['update:modelValue'])
@ -119,16 +123,25 @@ watch(
{immediate: true}, {immediate: true},
) )
function updateData() {
emit('update:modelValue', reminder.value)
if (props.clearAfterUpdate) {
reminder.value = new TaskReminderModel()
}
}
function setReminderDate() { function setReminderDate() {
reminder.value.reminder = reminderDate.value === null reminder.value.reminder = reminderDate.value === null
? null ? null
: new Date(reminderDate.value) : new Date(reminderDate.value)
emit('update:modelValue', reminder.value) updateData()
} }
function setReminderFromPreset(preset) { function setReminderFromPreset(preset, toggle) {
reminder.value = preset reminder.value = preset
emit('update:modelValue', reminder.value) updateData()
toggle()
} }
function formatReminder(reminder: TaskReminderModel) { function formatReminder(reminder: TaskReminderModel) {

View File

@ -19,15 +19,11 @@
</div> </div>
</div> </div>
<div v-if="!disabled" class="reminder-input"> <ReminderDetail
<BaseButton @click="toggleAddReminder"> :disabled="disabled"
{{ $t('task.addReminder') }} @update:modelValue="addNewReminder"
</BaseButton> :clear-after-update="true"
</div> />
<div v-if="isAddReminder" class="reminder-input">
<ReminderDetail :disabled="disabled" @update:modelValue="addNewReminder"/>
</div>
</div> </div>
</template> </template>
@ -62,14 +58,7 @@ watch(
{immediate: true}, {immediate: true},
) )
const isAddReminder = ref(false)
function toggleAddReminder() {
isAddReminder.value = !isAddReminder.value
}
function updateData() { function updateData() {
isAddReminder.value = false
emit('update:modelValue', reminders.value) emit('update:modelValue', reminders.value)
} }
@ -81,12 +70,10 @@ function editReminder(index: number) {
} }
function addNewReminder(newReminder: ITaskReminder) { function addNewReminder(newReminder: ITaskReminder) {
console.log('add new reminder', newReminder)
if (newReminder === null) { if (newReminder === null) {
return return
} }
reminders.value.push(newReminder) reminders.value.push(newReminder)
newReminder = reactive(new TaskReminderModel())
updateData() updateData()
} }