fix timetracker timepicker when no timer is started yet

This commit is contained in:
Gregor Vostrak
2024-06-05 13:13:38 +02:00
parent ded58f8bd6
commit 2692db2a86
2 changed files with 15 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import { computed } from 'vue';
import { getLocalizedDayJs } from '@/utils/time';
import { computed, onMounted } from 'vue';
import { getDayJsInstance, getLocalizedDayJs } from '@/utils/time';
import { twMerge } from 'tailwind-merge';
const model = defineModel<string | null>({
@@ -47,6 +47,11 @@ function updateHours(event: Event) {
}
const emit = defineEmits(['changed']);
onMounted(() => {
if (!model.value) {
model.value = getDayJsInstance().utc().format();
}
});
</script>
<template>

View File

@@ -8,7 +8,8 @@ import { useCurrentTimeEntryStore } from '@/utils/useCurrentTimeEntry';
import { storeToRefs } from 'pinia';
import { getDayJsInstance } from '@/utils/time';
const currentTimeEntryStore = useCurrentTimeEntryStore();
const { startLiveTimer, stopLiveTimer, updateTimer } = currentTimeEntryStore;
const { startLiveTimer, stopLiveTimer, updateTimer, startTimer } =
currentTimeEntryStore;
const { currentTimeEntry, now } = storeToRefs(currentTimeEntryStore);
defineEmits(['changed']);
@@ -108,10 +109,14 @@ function parseHHMM(value: string): string[] | null {
const temporaryCustomTimerEntry = ref<string>('');
async function updateTimeRange(newStart: string) {
// prohibit updates in the future
if (getDayJsInstance()(newStart).isBefore(getDayJsInstance()())) {
// prohibit updates in the future
currentTimeEntry.value.start = newStart;
await updateTimer();
if (currentTimeEntry.value.id) {
await updateTimer();
} else {
await startTimer();
}
}
}
</script>