Files
tout-doux/resources/ts/components/DateInput.vue
T

31 lines
735 B
Vue

<script setup lang="ts">
import { parseDateInput, formatDateInput } from "@/lib/dates";
const emit = defineEmits<(e: "input"|"change", value: Date) => void>();
const date = defineModel<Date>({ required: true });
function onInput(event: Event) {
const inputValue = (event.target as HTMLInputElement).value;
date.value = parseDateInput(inputValue);
emit('input', date.value);
}
function onChange(event: Event) {
const inputValue = (event.target as HTMLInputElement).value;
date.value = parseDateInput(inputValue);
emit('change', date.value);
}
</script>
<template>
<input
:value="formatDateInput(date)"
type="date"
@input="onInput"
@change="onChange"
/>
</template>