From 985b8a75645222ef091343247395b260f7c1a696 Mon Sep 17 00:00:00 2001 From: Nic D Date: Mon, 23 Mar 2026 15:15:43 -0400 Subject: [PATCH] fix(timesheet): fix issue on mobile version where shifts cannot be deleted --- .../mobile/shift-list-day-mobile.vue | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/modules/timesheets/components/mobile/shift-list-day-mobile.vue b/src/modules/timesheets/components/mobile/shift-list-day-mobile.vue index 1fc5450..346c0cf 100644 --- a/src/modules/timesheets/components/mobile/shift-list-day-mobile.vue +++ b/src/modules/timesheets/components/mobile/shift-list-day-mobile.vue @@ -10,11 +10,13 @@ import { useUiStore } from 'src/stores/ui-store'; import { useTimesheetStore } from 'src/stores/timesheet-store'; import { Shift } from 'src/modules/timesheets/models/shift.models'; + import { useShiftApi } from 'src/modules/timesheets/composables/use-shift-api'; import type { TimesheetDay } from 'src/modules/timesheets/models/timesheet.models'; - // import { useTimesheetApi } from 'src/modules/timesheets/composables/use-timesheet-api'; +import { isShiftOverlap } from 'src/modules/timesheets/utils/shift.util'; const { locale } = useI18n(); const uiStore = useUiStore(); + const shiftApi = useShiftApi(); const timesheetStore = useTimesheetStore(); const day = defineModel({ required: true }); @@ -44,6 +46,22 @@ else if (locale.value === 'en-CA') return holiday.nameEn; }; + + const onTimeFieldBlur = () => { + const is_error = isShiftOverlap(day.value.shifts); + day.value.shifts.map(shift => shift.has_error = is_error); + } + + const deleteCurrentShift = async (shiftId: number, index: number) => { + if (shiftId <= 0) + day.value.shifts.splice(index, 1); + else + await shiftApi.deleteShiftById(shiftId); + + if (day.value.shifts.length < 2) { + onTimeFieldBlur(); + } + };