diff --git a/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js b/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js index 0e86c4143..99b200037 100644 --- a/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js +++ b/src/layouts/service-location/helpers/service-location-helper/service-location-helper.js @@ -6,7 +6,7 @@ export async function getPricedMobileFeePart(serviceZipCode, pageNameToLog) { return null; } - const zipCodeData = await baseMixin.methods.getZipCodeData(serviceZipCode, pageNameToLog); + const zipCodeData = await getZipCodeData(serviceZipCode); // Get the Mobile Fee Part const mobileFeePart = await baseMixin.methods.dispatchStoreActionWithLogging( @@ -103,3 +103,7 @@ export async function getAvailabilityRating( return shopStatus; } + +export async function getZipCodeData(serviceZipCode) { + return await baseMixin.methods.getZipCodeData(serviceZipCode, "service-location"); +} diff --git a/src/layouts/service-location/service-location.vue b/src/layouts/service-location/service-location.vue index 698b75a40..a9d508243 100644 --- a/src/layouts/service-location/service-location.vue +++ b/src/layouts/service-location/service-location.vue @@ -149,6 +149,7 @@ import { getPricedMobileFeePart, getServiceabilityDetails, getShopProviderData, + getZipCodeData, } from "@/layouts/service-location/helpers/service-location-helper/service-location-helper"; import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; import { applicationConfig } from "@/constants/application-config"; @@ -206,10 +207,7 @@ export default { const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); const serviceZipCode = store.getters.order.serviceLocation.zipCode; - const zipCodeDataPromise = baseMixin.methods.getZipCodeData( - serviceZipCode, - "service-location" - ); + const zipCodeDataPromise = getZipCodeData(serviceZipCode); const serviceabilityDetailsPromise = getServiceabilityDetails( serviceZipCode, @@ -475,17 +473,31 @@ export default { }, //creating async function as the computed property can not directly handle asynchronous operations or promises. async setMobileLocationQuestions(newValue) { + var newZipCode = newValue.addressQuestions.zipCode; if (newValue.addressQuestions.zipCode !== this.zipCode) { - await getShopProviderData(newValue.addressQuestions.zipCode).then((result) => { - this.shopProviderData = result.data; - this.selectedProvider = new Provider( - this.shopProviderData.mobileProviderNumber - ); + await getShopProviderData(newZipCode).then((result) => { + if (this.isServiceableMobile) { + this.shopProviderData = result.data; + this.selectedProvider = new Provider( + this.shopProviderData.mobileProviderNumber + ); + } + }); + } + if (this.isServiceableMobile) { + this.setMobileLocation(newValue); + //proceed to next page + this.forwardButtonAction(); + } else { + this.closeModalAction("mobileLocationQuestions"); + await getZipCodeData(newZipCode).then((zipCodeData) => { + this.serviceZipCodeQuestion = { + state: zipCodeData.state, + zipCode: newZipCode, + zipCodeCtu: zipCodeData.zipCodeCtu, + }; }); } - this.setMobileLocation(newValue); - //proceed to next page - this.forwardButtonAction(); }, getServiceAddressFromStore() { return store.getters.order.serviceLocation.address; @@ -669,6 +681,9 @@ export default { openModalAction(modalName) { this.$refs[modalName].openModal(); }, + closeModalAction(modalName) { + this.$refs[modalName].closeModal(); + }, }, watch: { zipCode: {