diff --git a/src/layouts/coverage-statement/coverage-statement.vue b/src/layouts/coverage-statement/coverage-statement.vue index 72586138..a38ffa88 100644 --- a/src/layouts/coverage-statement/coverage-statement.vue +++ b/src/layouts/coverage-statement/coverage-statement.vue @@ -119,7 +119,6 @@ import vehicleQuestionsMixin from '@/mixins/vehicle-questions-mixin.js'; import globalRules from '@/constants/global-rules.js'; import baseFormMixin from '@/mixins/base-form-mixin.js'; import navigationScenarios from '@/router/router-constants/navigation-scenarios.js'; -import issPageValues from '@/router/router-constants/issPage-values'; import bailoutMessage from '@/constants/bailoutMessage'; import widgetFields from '@/constants/cms-widget-fields.js'; import { formatAmountInDollars } from '@/helpers/text-helper.js'; @@ -145,9 +144,11 @@ export default { }, mixins: [baseFormMixin, vehicleQuestionsMixin], async beforeRouteEnter(to, from, next) { + const store = useMainStore(); + // Call APIs const cmsContentPromise = fetchCmsContentForPage(to?.query?.issPage); - const supportingItemsPromise = await useMainStore().getSupportingItems(); + const supportingItemsPromise = store.getSupportingItems(); // Settle promises and get results const promiseResultMap = [ @@ -161,15 +162,24 @@ export default { } ]; - const resultMap = await settleAllPromises(promiseResultMap); - - const { vehicle, isPolicyLookupSuccessful, isITAC, isDeductible } = useMainStore(); - if (isPolicyLookupSuccessful && vehicle.policyVehicleId >= 0) { - if (isITAC || isDeductible) { - await useMainStore().getFinalDeductible(); - } + const { vehicle, isITAC, isDeductible, serviceLocation } = store; + if ((isITAC || isDeductible) + && vehicle.policyVehicleId >= 0) { + promiseResultMap.push({ + resultKey: 'getFinalDeductible', + promise: store.getFinalDeductible() + }); } + if (!serviceLocation.zipCodeCtu) { + promiseResultMap.push({ + resultKey: 'validateZip', + promise: store.validateZip({ zip: store.order.policy.policyZipCode }) + }); + } + + const resultMap = await settleAllPromises(promiseResultMap); + next(async (vm) => { showIssLoadingModal(true); vm.setCmsContent(resultMap.cmsContent); diff --git a/src/store/index.js b/src/store/index.js index 321d9285..c36f5887 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -263,6 +263,7 @@ export const useMainStore = defineStore({ lineItems: (state) => state.order.lineItems, payment: (state) => state.order.payment, policy: (state) => state.order.policy, + serviceLocation: (state) => state.order.serviceLocation, hasExactlyOneChip: () => state.order.damage.numberOfChips === 1, isPolicyVehicle: () => state.order.vehicle.policyVehicleId != null, hasWindshieldReplacement: (s) => {