From b6df3ac8d2fb5be4d838aaf2e33875d2a75ef8b4 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Mon, 26 Aug 2024 15:13:30 -0400 Subject: [PATCH 1/4] CSR-2177 CSR-2177 we need to allow navigation forward on a policy vehicle change so that we call parts again for the new vehicle. Having the jump back to heritage on service-zip prevents parts from being called again so we end up in heritage with no items on the order. Nav to heritage will still happen in the vehicle-questions-mixin logic or the quote beforerouteenter logic. --- .../heritage-integration/navigation-helper.js | 4 ++-- src/layouts/quote/quote.vue | 15 +++++++++++++++ src/layouts/service-zip/service-zip.vue | 13 +------------ src/layouts/vehicle/vehicle.vue | 6 +----- src/router/index.js | 6 +++--- 5 files changed, 22 insertions(+), 22 deletions(-) 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; From 6ef362b1ff84c4191a3d3ea4e9e6de1f8a240dc3 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Mon, 26 Aug 2024 15:18:31 -0400 Subject: [PATCH 2/4] prettier --- src/helpers/heritage-integration/navigation-helper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/heritage-integration/navigation-helper.js b/src/helpers/heritage-integration/navigation-helper.js index fe3b48d3e..7dc6b29e7 100644 --- a/src/helpers/heritage-integration/navigation-helper.js +++ b/src/helpers/heritage-integration/navigation-helper.js @@ -132,7 +132,7 @@ export async function navigateToHeritageFunnel({ shouldSaveSession, pageNameToLo ) { heritageParms["forceEndToEndInsurance"] = true; } - + router.navigateToExternalUrl(externalUrls.HERITAGE_FUNNEL, heritageParms); } From e06d288a63e8da404e71521fb38b2a1bccd54234 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 27 Aug 2024 06:16:52 -0400 Subject: [PATCH 3/4] CSR-2177 null checking --- src/layouts/quote/quote.vue | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 1e4af96e0..0d0e30128 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -275,15 +275,15 @@ export default { const payment = store.getters.payment; const policy = store.getters.policy; - const vehicleChangedDuringPolicyLookupInHeritage = - payment.isInsurance && - payment.insuranceCoverage.coverageStatus && - policy.policyNumber !== ""; + if (payment?.isInsurance) { + const vehicleChangedDuringPolicyLookupInHeritage = + 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" }); + // 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) { From 900b043361d310b7c6e44f92224e1fe287ffc1cc Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 27 Aug 2024 07:21:39 -0400 Subject: [PATCH 4/4] CSR-2177 null checking --- src/layouts/vehicle/vehicle.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index df1929b23..56f966ac7 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -398,7 +398,7 @@ export default { }, methods: { isDisabled(options) { - if (!options.length || store.getters.payment.insuranceCoverage.isVerified) { + if (!options.length || store.getters.payment?.insuranceCoverage?.isVerified) { return true; } else { return false;