27 lines
900 B
Vue
27 lines
900 B
Vue
<script setup lang="ts">
|
|
import type { FormSubmitEvent } from '@nuxt/ui'
|
|
|
|
const emit = defineEmits<{ saved: [] }>()
|
|
|
|
const state = reactive({ date: todayIso(), text: '' })
|
|
const { saving, save } = useSaveEntry({ url: '/api/diary/notes', dataKey: 'diary-notes', noun: 'note', onSaved: () => emit('saved') })
|
|
|
|
function onSubmit(event: FormSubmitEvent<NewNoteInput>) {
|
|
return save(event.data)
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<UForm :schema="newNoteSchema" :state="state" class="space-y-5" @submit="onSubmit">
|
|
<UFormField label="Date" name="date" required>
|
|
<UInput v-model="state.date" type="date" />
|
|
</UFormField>
|
|
|
|
<UFormField label="Note" name="text" required>
|
|
<UTextarea v-model="state.text" :rows="8" autoresize :maxrows="18" class="w-full" autofocus />
|
|
</UFormField>
|
|
|
|
<UButton type="submit" label="Save note" :icon="NOTE_ICON" :loading="saving" />
|
|
</UForm>
|
|
</template>
|