From 965b579f59a7fc6e530d2b555c40eacba9560e74 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Tue, 24 Feb 2026 13:16:51 -0500 Subject: [PATCH 1/4] Fix mobile alert wrap --- .../service-location/service-location.vue | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/layouts/schedule-page/service-location/service-location.vue b/src/layouts/schedule-page/service-location/service-location.vue index eb121d40..1aef10b7 100644 --- a/src/layouts/schedule-page/service-location/service-location.vue +++ b/src/layouts/schedule-page/service-location/service-location.vue @@ -604,6 +604,22 @@ $page-side-padding: 1.5rem; div.alert { margin-top: 0.625rem; + &.widget-name-AlertLowAvailabilityInshopWidget { + @include media-breakpoint-up(xs) { + :deep(.alert-headline-text-container) { + padding-left: 0.5rem; + padding-right: 0.375rem; + letter-spacing: 0.45px; + } + } + @include media-breakpoint-up(xl) { + :deep(.alert-headline-text-container) { + padding: 0rem 0.625rem; + } + } + + } + button.looka-likea-link { background: none; border: none; From f72772e6b0058271154bcb80ad0734ca48bebcb5 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Tue, 24 Feb 2026 13:31:11 -0500 Subject: [PATCH 2/4] More readable check --- src/layouts/schedule-page/schedule-page.vue | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index 153e97a8..215654b0 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -352,14 +352,17 @@ export default { return false; } + const validMobileAppointmentType = ((this.selectedAppointmentType === AppointmentTypeStrings.MOBILE + || this.selectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP) + && serviceLocationToUse.mobileProviderNumber); + const validInShopAppointmentType = ((this.selectedAppointmentType === AppointmentTypeStrings.IN_SHOP + || this.selectedAppointmentType === AppointmentTypeStrings.DROP_OFF) + && (this.selectedProvider?.providerNumber || serviceLocationToUse.provider?.providerNumber)); + const serviceLocationPreReqs = serviceLocationToUse.zipCode !== null && serviceLocationToUse.zipCodeCtu !== null && serviceLocationToUse.appointmentType !== null - && (((this.selectedAppointmentType === AppointmentTypeStrings.MOBILE - || this.selectedAppointmentType === AppointmentTypeStrings.MOBILE_NOT_ITAC_AND_NOT_NOCOMP) - && serviceLocationToUse.mobileProviderNumber) - || ((this.selectedAppointmentType === AppointmentTypeStrings.IN_SHOP || this.selectedAppointmentType === AppointmentTypeStrings.DROP_OFF) - && (this.selectedProvider?.providerNumber || serviceLocationToUse.provider?.providerNumber))); + && (validMobileAppointmentType || validInShopAppointmentType); const damageInfo = useMainStore().order.damage.isRepair || (useMainStore().order.lineItems?.glassParts != null && useMainStore().order.lineItems.glassParts.length > 0); From b4e929d5743d1dc34fd09419340feeafe2a7a52a Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Wed, 25 Feb 2026 14:23:29 -0500 Subject: [PATCH 3/4] some hide show updates change modelValue to emit --- src/layouts/schedule-page/schedule-page.vue | 7 ++-- .../service-location/service-location.vue | 36 ++++++++++++------- .../service-zip-question.vue | 14 ++++---- .../shop-address/shop-address.vue | 12 +++++-- 4 files changed, 45 insertions(+), 24 deletions(-) diff --git a/src/layouts/schedule-page/schedule-page.vue b/src/layouts/schedule-page/schedule-page.vue index 215654b0..590b319c 100644 --- a/src/layouts/schedule-page/schedule-page.vue +++ b/src/layouts/schedule-page/schedule-page.vue @@ -329,6 +329,7 @@ export default { return { inShopAvailabilityRating: 'high', inShopDatesData: [], + isDatePickerRefreshing: false, isMobileView: false, mobileDatesData: [], mobileFeePart: null, @@ -362,7 +363,8 @@ export default { const serviceLocationPreReqs = serviceLocationToUse.zipCode !== null && serviceLocationToUse.zipCodeCtu !== null && serviceLocationToUse.appointmentType !== null - && (validMobileAppointmentType || validInShopAppointmentType); + && (validMobileAppointmentType || validInShopAppointmentType) + && !this.isDatePickerRefreshing; const damageInfo = useMainStore().order.damage.isRepair || (useMainStore().order.lineItems?.glassParts != null && useMainStore().order.lineItems.glassParts.length > 0); @@ -688,11 +690,12 @@ export default { } }, async refreshDatePicker() { - console.log('refresh date picker...'); this.resetLocalFlags(); + this.isDatePickerRefreshing = true; await this.getDatePickerInitialData().then((data) => { this.selectableDatesData = data.initialShopTimeSlotsResponse; this.$refs.datePicker.initializeComponent(data); + this.isDatePickerRefreshing = false; showIssLoadingModal(false); }); }, diff --git a/src/layouts/schedule-page/service-location/service-location.vue b/src/layouts/schedule-page/service-location/service-location.vue index 1aef10b7..d5559a95 100644 --- a/src/layouts/schedule-page/service-location/service-location.vue +++ b/src/layouts/schedule-page/service-location/service-location.vue @@ -96,13 +96,14 @@ + cmsWidgetName="MobileZipWidget" + @serviceZipCodeUpdated="handleServiceZipCodeChanged" />
@@ -32,7 +32,7 @@ export default { }, // TODO: Correct prop def. props: { - modelValue: String, + parentZipCode: String, cmsWidgetName: String, serviceZipFormatErrorMessage: { type: String, @@ -43,14 +43,14 @@ export default { default: false } }, - emits: ['update:modelValue', 'field-has-error'], + emits: ['service-zip-code-updated', 'field-has-error'], data() { return { - internalZipcode: this.modelValue + internalZipcode: this.parentZipCode }; }, watch: { - modelValue(newValue) { + parentZipCode(newValue) { if (newValue !== this.internalZipcode) { this.internalZipcode = newValue; } @@ -63,8 +63,8 @@ export default { handleFieldError(hasError) { this.$emit('field-has-error', hasError); }, - updateModelValue() { - this.$emit('update:modelValue', this.internalZipcode); + emitZipCodeUpdate() { + this.$emit('service-zip-code-updated', this.internalZipcode); } } }; diff --git a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue index 98563ad1..f2fca788 100644 --- a/src/layouts/schedule-page/service-location/shop-address/shop-address.vue +++ b/src/layouts/schedule-page/service-location/shop-address/shop-address.vue @@ -75,10 +75,11 @@ + @fieldHasError="handleFieldError" + @serviceZipCodeUpdated="handleServiceZipCodeChanged" />
{ From 8aeea7d5efb1ec809fa2aa6a1c4ea89f3d94c83e Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Wed, 25 Feb 2026 14:37:43 -0500 Subject: [PATCH 4/4] fix tests --- .../schedule-page/service-location/service-location.spec.js | 2 +- .../service-zip-question/service-zip-question.spec.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/layouts/schedule-page/service-location/service-location.spec.js b/src/layouts/schedule-page/service-location/service-location.spec.js index 7b1b4294..6a50fe05 100644 --- a/src/layouts/schedule-page/service-location/service-location.spec.js +++ b/src/layouts/schedule-page/service-location/service-location.spec.js @@ -203,7 +203,7 @@ describe('service-location.vue', () => { const newMobileServiceZipCode = '45433'; // Act - mobileServiceZipCodeQuestion.vm.$emit('update:modelValue', newMobileServiceZipCode); + mobileServiceZipCodeQuestion.vm.$emit('service-zip-code-updated', newMobileServiceZipCode); await wrapper.vm.$nextTick(); // Assert diff --git a/src/layouts/schedule-page/service-location/service-zip-question/service-zip-question.spec.js b/src/layouts/schedule-page/service-location/service-zip-question/service-zip-question.spec.js index 82c44d56..182cbf42 100644 --- a/src/layouts/schedule-page/service-location/service-zip-question/service-zip-question.spec.js +++ b/src/layouts/schedule-page/service-location/service-zip-question/service-zip-question.spec.js @@ -7,7 +7,7 @@ describe('service-zip-question.vue', () => { const text = '12345'; const wrapper = shallowMount(serviceZipQuestion, { props: { - modelValue: text + parentZipCode: text }, attachTo: document.body }); @@ -32,9 +32,9 @@ describe('service-zip-question.vue', () => { // Act wrapper.vm.internalZipcode = '55555'; - wrapper.vm.updateModelValue(); + wrapper.vm.emitZipCodeUpdate(); // Assert - expect(wrapper.emitted('update:modelValue')).toEqual([['55555']]); + expect(wrapper.emitted('service-zip-code-updated')).toEqual([['55555']]); }); });