fix broken date parsing

This commit is contained in:
Gregor Vostrak
2024-04-25 17:10:04 +02:00
parent 6c25c5dbfd
commit 023f6b12b5

View File

@@ -1,18 +1,18 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref } from 'vue'; import { ref } from 'vue';
import { getLocalizedDayJs } from '@/utils/time'; import { getLocalizedDayJs } from '@/utils/time';
import dayjs from 'dayjs';
const model = defineModel<string | null>({ const model = defineModel<string | null>({
default: null, default: null,
}); });
const tempDate = ref(getLocalizedDayJs(model.value).format('YYYY-MM-DD'));
function updateDate(event: Event) { function updateDate(event: Event) {
const target = event.target as HTMLInputElement; const target = event.target as HTMLInputElement;
const newValue = target.value; const newValue = target.value;
const newDate = dayjs(newValue); const newDate = getLocalizedDayJs(newValue);
if (newDate) { if (newDate) {
console.log('old', model.value);
model.value = getLocalizedDayJs(model.value) model.value = getLocalizedDayJs(model.value)
.set('year', newDate.year()) .set('year', newDate.year())
.set('day', newDate.day()) .set('day', newDate.day())
@@ -22,25 +22,25 @@ function updateDate(event: Event) {
} }
} }
const date = computed(() => {
return model.value
? getLocalizedDayJs(model.value).format('YYYY-MM-DD')
: null;
});
const datePicker = ref<HTMLInputElement | null>(null); const datePicker = ref<HTMLInputElement | null>(null);
function updateTempValue(event: Event) {
const target = event.target as HTMLInputElement;
tempDate.value = target.value;
}
</script> </script>
<template> <template>
<div class="flex items-center justify-center text-muted"> <div class="flex items-center justify-center text-muted">
<input <input
ref="datePicker" ref="datePicker"
@change="updateDate" @change="updateTempValue"
@blur="updateDate"
class="bg-input-background border text-white border-input-border rounded-md" class="bg-input-background border text-white border-input-border rounded-md"
type="date" type="date"
id="start" id="start"
name="trip-start" name="trip-start"
:value="date" /> :value="tempDate" />
</div> </div>
</template> </template>