From 66210e7830852501ab97ff4dea1f7d5e1eaf2835 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Thu, 25 Apr 2024 15:36:16 +0200 Subject: [PATCH] fix duration formatting over 24h, fix time entry create modal clearing after submit --- .../js/Components/Common/TimeEntry/TimeEntryCreateModal.vue | 4 ++-- resources/js/utils/time.ts | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/resources/js/Components/Common/TimeEntry/TimeEntryCreateModal.vue b/resources/js/Components/Common/TimeEntry/TimeEntryCreateModal.vue index 0279e58f..70f8371e 100644 --- a/resources/js/Components/Common/TimeEntry/TimeEntryCreateModal.vue +++ b/resources/js/Components/Common/TimeEntry/TimeEntryCreateModal.vue @@ -30,12 +30,12 @@ const timeEntryDefaultValues = { user_id: getCurrentUserId(), }; -const timeEntry = ref(timeEntryDefaultValues); +const timeEntry = ref({ ...timeEntryDefaultValues }); async function submit() { await createTimeEntry(timeEntry.value); + timeEntry.value = { ...timeEntryDefaultValues }; show.value = false; - timeEntry.value = timeEntryDefaultValues; } const projectNameInput = ref(null); diff --git a/resources/js/utils/time.ts b/resources/js/utils/time.ts index 996ea2a5..c20e99fc 100644 --- a/resources/js/utils/time.ts +++ b/resources/js/utils/time.ts @@ -19,7 +19,10 @@ export function getDayJsInstance() { } export function formatHumanReadableDuration(duration: number): string { - return dayjs.duration(duration, 's').format('HH[h] mm[min]'); + const dayJsDuration = dayjs.duration(duration, 's'); + const hours = dayJsDuration.hours() + dayJsDuration.days() * 24; + const minutes = dayJsDuration.minutes(); + return `${hours}h ${minutes.toString().padStart(2, '0')}min`; } export function calculateDifference(start: string, end: string | null) {