diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index 30ae38058..fe3b48d3e 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -33,7 +33,7 @@ export async function getDirectNavigation(toRoute) { // vehicle -> vehicle-damage // quote -> vin-lookup/estimate // insurance-company -> vin-lookup/estimate - if (store.getters.requiresVerifiedRedirecting) { + if (store.getters.payment?.insuranceCoverage?.isVerified) { if (fmgPageValue === fmgPageValues.VEHICLE) { return fmgPageValues.VEHICLE_DAMAGE; } @@ -132,7 +132,7 @@ export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLo ) { heritageParms["forceEndToEndInsurance"] = true; } - + router.navigateToExternalUrl(externalUrls.HERITAGE_FUNNEL, heritageParms); } diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index c49eb3417..1e4af96e0 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -125,6 +125,7 @@ import { partTypeStrings } from "@/constants/part-type-strings"; import { containsLineItemWithPartType } from "@/helpers/service-package-helper"; import { nextTick } from "vue"; import { packageNames } from "@/constants/package-names"; +import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; defineRule("option-required", required(errorMessages.OPTION_REQUIRED)); export default { @@ -271,6 +272,20 @@ export default { validateAlerts[0].shouldAutoFade ); } + + const payment = store.getters.payment; + const policy = store.getters.policy; + const vehicleChangedDuringPolicyLookupInHeritage = + payment.isInsurance && + payment.insuranceCoverage.coverageStatus && + policy.policyNumber !== ""; + + // This is a safeguard to prevent insurance from seeing quote page again. + // Usually this is caught in vehicle-questions-mixin with a referral length 6 check + if (vehicleChangedDuringPolicyLookupInHeritage) { + navigateToHeritageFunnel({ shouldSaveSession: true, pageNameToLog: "quote" }); + } + if (store.getters.isExternalParameter) { if (store.getters.externalParameterQuote.isInsurance == true) { vm.isInsuranceSelected = true; diff --git a/src/layouts/service-zip/service-zip.vue b/src/layouts/service-zip/service-zip.vue index b8f29c817..056e67d97 100644 --- a/src/layouts/service-zip/service-zip.vue +++ b/src/layouts/service-zip/service-zip.vue @@ -87,7 +87,6 @@ import { skipVinLookupNotRepair, } from "@/helpers/heritage-integration/navigation-helper"; import vinPagesMixin from "@/mixins/vin-pages-mixin"; -import { navigateToHeritageFunnel } from "@/helpers/heritage-integration/navigation-helper"; import { saveSession } from "@/helpers/heritage-integration/order-helper.js"; import baseMixin from "@/mixins/base-mixin.js"; import { queryStrings } from "@/constants/query-strings"; @@ -208,17 +207,7 @@ export default { const payment = this.$store.getters.payment; const policy = this.$store.getters.policy; - const vehicleChangedDuringPolicyLookupInHeritage = - payment.isInsurance && - payment.insuranceCoverage.coverageStatus && - policy.policyNumber !== ""; - - if (vehicleChangedDuringPolicyLookupInHeritage) { - navigateToHeritageFunnel({ - shouldSaveSession: true, - pageNameToLog: "estimate", - }); - } else if (this.$store.getters.order.referralNumber?.length === 6) { + if (this.$store.getters.order.referralNumber?.length === 6) { await this.navigateForwardWithSingleCarMatch(); } else if (this.isRepair) { const supportingItemsPromise = await this.dispatchStoreActionWithLogging( diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index dbbf8e9c7..df1929b23 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -398,11 +398,7 @@ export default { }, methods: { isDisabled(options) { - if ( - !options.length || - store.getters.requiresVerifiedRedirecting || - getFunnelCookie()?.HasDelayedClaimRegistration - ) { + if (!options.length || store.getters.payment.insuranceCoverage.isVerified) { return true; } else { return false; diff --git a/src/router/index.js b/src/router/index.js index d329c358a..299b7c246 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -129,7 +129,7 @@ const routes = [ // Reroute around pages that should not be available. // Exception 1: Integrated Users should not see vehicle or quote pages. - if (store.getters.requiresVerifiedRedirecting) { + if (store.getters.payment?.insuranceCoverage?.isVerified) { if (to.query.fmgPage === fmgPageValues.VEHICLE) { to.query.fmgPage = fmgPageValues.VEHICLE_DAMAGE; } else if ( @@ -521,7 +521,7 @@ async function DisplayPageError() { // we use the pageError querystring as a counter to how many times a user has experienced an error and been routed here. // once they receive more than 1 pageerrors, we'll reset their state to hopefully correct any issues they may be having. var navPage = fmgPageValues.VEHICLE; - if (store.getters.requiresVerifiedRedirecting) { + if (store.getters.payment?.insuranceCoverage?.isVerified) { navPage = fmgPageValues.VEHICLE_DAMAGE; } @@ -587,7 +587,7 @@ async function runExperiments(nextPage) { } function getRedirectedStartPage() { - if (store.getters.requiresVerifiedRedirecting) { + if (store.getters.payment?.insuranceCoverage?.isVerified) { return fmgPageValues.VEHICLE_DAMAGE; } else { return funnelStartPageName;