Merge pull request #2932 from Safelite/feature/CASH-1813

CASH-1813: Mobile First defect fixes
This commit is contained in:
Chris 2025-11-05 10:44:38 -05:00 committed by GitHub
commit b8da057287
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1741,7 +1741,7 @@ export default {
setSelectedDateToFirstAvailable() { setSelectedDateToFirstAvailable() {
this.selectedDate = this.getFirstAvailableDate(); this.selectedDate = this.getFirstAvailableDate();
}, },
showMobileFirstModal() { async showMobileFirstModal() {
if (this.appointmentType == AppointmentTypeStrings.MOBILE) { if (this.appointmentType == AppointmentTypeStrings.MOBILE) {
const isShowMobileFirstAppt = experimentMixin.methods.hasSettingEqualTo( const isShowMobileFirstAppt = experimentMixin.methods.hasSettingEqualTo(
experimentSettings.SHOW_MOBILE_FIRST_APPT, experimentSettings.SHOW_MOBILE_FIRST_APPT,
@ -1759,18 +1759,24 @@ export default {
let preSelectedMobileAppointment = null; let preSelectedMobileAppointment = null;
const todaysDate = getTodayDate(); const todaysDate = getTodayDate();
let firstMobilePMAppt = this.getFirstAvailableMobileApptByTOD("PM"); let firstMobileAMAppt = await this.getFirstAvailableMobileApptByTOD("AM");
if (!firstMobilePMAppt) { let firstMobilePMAppt = await this.getFirstAvailableMobileApptByTOD("PM");
if (!firstMobileAMAppt && !firstMobilePMAppt) {
return; return;
} }
let firstMobileAMDate = firstMobileAMAppt ? firstMobileAMAppt.date : null;
let firstMobilePMDate = firstMobilePMAppt ? firstMobilePMAppt.date : null; let firstMobilePMDate = firstMobilePMAppt ? firstMobilePMAppt.date : null;
let numberOfDaysToFirstMobileAMDate =
(new Date(firstMobileAMDate) - todaysDate) / (1000 * 60 * 60 * 24);
let numberOfDaysToFirstMobilePMDate = let numberOfDaysToFirstMobilePMDate =
(new Date(firstMobilePMDate) - todaysDate) / (1000 * 60 * 60 * 24); (new Date(firstMobilePMDate) - todaysDate) / (1000 * 60 * 60 * 24);
const shouldExposeMobileFirstAppointment = () => { const shouldExposeMobileFirstAppointment = () => {
return ( return (
firstMobilePMDate && (firstMobileAMDate &&
numberOfDaysToFirstMobilePMDate <= noMobileAvailableDays numberOfDaysToFirstMobileAMDate <= noMobileAvailableDays) ||
(firstMobilePMDate &&
numberOfDaysToFirstMobilePMDate <= noMobileAvailableDays)
); );
}; };
@ -1802,7 +1808,6 @@ export default {
firstMobilePMDate && firstMobilePMDate &&
numberOfDaysToFirstMobilePMDate >= noPMMobileDays numberOfDaysToFirstMobilePMDate >= noPMMobileDays
) { ) {
let firstMobileAMAppt = this.getFirstAvailableMobileApptByTOD("AM");
preSelectedMobileAppointment = firstMobileAMAppt preSelectedMobileAppointment = firstMobileAMAppt
? firstMobileAMAppt ? firstMobileAMAppt
: null; : null;
@ -1818,7 +1823,10 @@ export default {
} }
} }
}, },
getFirstAvailableMobileApptByTOD(timeOfDay) { async getFirstAvailableMobileApptByTOD(timeOfDay) {
if (!this.selectableDatesMobile.days) {
await this.initializeDatePicker();
}
if (!this.selectableDatesMobile?.days?.length) { if (!this.selectableDatesMobile?.days?.length) {
return null; return null;
} else { } else {