diff --git a/src/layouts/schedule/schedule.vue b/src/layouts/schedule/schedule.vue index 979126338..b43087bff 100644 --- a/src/layouts/schedule/schedule.vue +++ b/src/layouts/schedule/schedule.vue @@ -1394,12 +1394,15 @@ export default { } if (this.selectedTimeSlotInfo.timeSlot.jobMinMinutes == null) { - this.selectedTimeSlotInfo.timeSlot.jobMinMinutes = this.isMobileSelected - ? this.selectableDatesMobile.estimatedServiceMinutesMinimum?.toString() - : this.selectableDatesInshop.estimatedServiceMinutesMinimum?.toString(); - this.selectedTimeSlotInfo.timeSlot.jobMaxMinutes = this.isMobileSelected - ? this.selectableDatesMobile.estimatedServiceMinutesMaximum?.toString() - : this.selectableDatesInshop.estimatedServiceMinutesMaximum?.toString(); + this.selectedTimeSlotInfo = this.getSelectedTimeSlotInfo(); + if (this.selectedTimeSlotInfo.timeSlot.jobMinMinutes == null) { + this.selectedTimeSlotInfo.timeSlot.jobMinMinutes = this.isMobileSelected + ? this.selectableDatesMobile.estimatedServiceMinutesMinimum?.toString() + : this.selectableDatesInshop.estimatedServiceMinutesMinimum?.toString(); + this.selectedTimeSlotInfo.timeSlot.jobMaxMinutes = this.isMobileSelected + ? this.selectableDatesMobile.estimatedServiceMinutesMaximum?.toString() + : this.selectableDatesInshop.estimatedServiceMinutesMaximum?.toString(); + } } this.dispatchStoreAction( @@ -1663,7 +1666,14 @@ export default { }, selectedDate(newValue, oldValue) { // Clear time slot selection if date selected changes - if (newValue !== oldValue) { + const selectedDate = this.getSelectedDateFromStore(); + if (oldValue && this.appointmentType === AppointmentTypeStrings.MOBILE) { + oldValue = `${oldValue}-mobile`; + } + const hasValueChanged = newValue !== oldValue; + const isDateDifferent = (newValue || oldValue) !== selectedDate; + + if (hasValueChanged && isDateDifferent) { this.selectedTimeSlotInfo = { timeSlot: { date: null,