From 6ab9c34370dcce51fa4f7fd4db388bb968160bb8 Mon Sep 17 00:00:00 2001 From: hiteshkumar87 Date: Wed, 21 Aug 2024 16:28:00 +0530 Subject: [PATCH] CSR-2087 replacing LeadGenState with ExternalParameterState and add capability questions, molding questions and vehicle parts. --- src/constants/store-actions.js | 5 +- src/constants/store-mutations.js | 42 ++-- src/layouts/address-lookup/address-lookup.vue | 5 +- .../capability-questions.vue | 4 + src/layouts/estimate/estimate.spec.js | 6 +- src/layouts/estimate/estimate.vue | 15 +- .../insurance-company/insurance-company.vue | 5 +- .../license-plate-lookup.vue | 5 +- .../molding-questions/molding-questions.vue | 4 + src/layouts/part-questions/part-questions.vue | 6 +- src/layouts/quote/quote.spec.js | 10 +- src/layouts/quote/quote.vue | 15 +- .../service-package-question.vue | 3 +- src/layouts/service-zip/service-zip.spec.js | 18 +- src/layouts/service-zip/service-zip.vue | 19 +- .../vehicle-damage/vehicle-damage.spec.js | 36 ++- src/layouts/vehicle-damage/vehicle-damage.vue | 24 +- src/layouts/vehicle-parts/vehicle-parts.vue | 4 + src/layouts/vehicle/vehicle.spec.js | 8 +- src/layouts/vehicle/vehicle.vue | 71 +++--- src/layouts/vin-lookup/vin-lookup.vue | 5 +- src/mixins/base-mixin.js | 3 +- src/router/index.js | 143 ++++++------ src/store/index.js | 213 +++++++++--------- 24 files changed, 335 insertions(+), 334 deletions(-) diff --git a/src/constants/store-actions.js b/src/constants/store-actions.js index 6249db5e7..65cb13e9b 100644 --- a/src/constants/store-actions.js +++ b/src/constants/store-actions.js @@ -96,9 +96,8 @@ const storeActions = { CREATE_SUBMITTED_ORDER: "createSubmittedOrder", RESET_SUBMITTED_ORDER: "resetSubmittedOrder", - RESET_LEADGEN_STATE: "resetLeadGenState", - CREATE_LEADGEN_STATE: "createLeadGenState", - UPDATE_LEADGEN_MMS: "updateLeadGenMMS", + RESET_EXTERNAL_PARAMETER_STATE: "resetExternalParameterState", + UPDATE_EXTERNAL_PARAMETER_MMS: "updateExternalParameterMMS", }; export { storeActions }; diff --git a/src/constants/store-mutations.js b/src/constants/store-mutations.js index 48700d530..b248ac150 100644 --- a/src/constants/store-mutations.js +++ b/src/constants/store-mutations.js @@ -60,7 +60,6 @@ const storeMutations = { Customer_Portal_Login_Token: "updateCustomerPortalLoginToken", LOCK_TOKEN: "updateLockToken", UPDATE_SETTLED_TENDER_AMOUNT: "updateSettledTenderAmount", - UPDATE_IS_LEAD_GEN: "updateIsLeadGen", // EVENT BUS MUTATIONS ADD_EVENT_TO_BUS: "addEventToBus", @@ -89,27 +88,28 @@ const storeMutations = { UPDATE_EXPERIMENTS: "updateExperiments", UPDATE_TRIGGERED_SITE_ENTRY: "updateTriggeredSiteEntry", - // LEADGEN MUTATIONS - UPDATE_LEAD_GEN_YEAR: "updateLeadGenYear", - UPDATE_LEAD_GEN_MAKE: "updateLeadGenMake", - UPDATE_LEAD_GEN_MODEL: "updateLeadGenModel", - UPDATE_LEAD_GEN_STYLE: "updateLeadGenStyle", - UPDATE_LEAD_GEN_IS_REPAIR: "updateLeadGenIsRepair", - UPDATE_LEAD_GEN_NUMBER_OF_CHIPS: "updateLeadGenNumberOfChips", - UPDATE_LEAD_GEN_DAMAGE_TYPE: "updateLeadGenDamageType", - UPDATE_LEAD_GEN_ZIP_CODE: "updateLeadGenZipCode", - UPDATE_LEAD_GEN_EMAIL_ADDRESS: "updateLeadGenEmailAddress", - UPDATE_LEAD_GEN_IS_INSURANCE: "updateLeadGenIsInsurance", - UPDATE_LEAD_GEN_VIN_SELECTION: "updateLeadGenVinSelection", - UPDATE_LEAD_GEN_SERVICE_PACKAGE: "updateLeadGenServicePackage", + // EXTERNAL_PARAMETER MUTATIONS + UPDATE_IS_EXTERNAL_PARAMETER: "updateIsExternalParameter", + UPDATE_EXTERNAL_PARAMETER_YEAR: "updateExternalParameterYear", + UPDATE_EXTERNAL_PARAMETER_MAKE: "updateExternalParameterMake", + UPDATE_EXTERNAL_PARAMETER_MODEL: "updateExternalParameterModel", + UPDATE_EXTERNAL_PARAMETER_STYLE: "updateExternalParameterStyle", + UPDATE_EXTERNAL_PARAMETER_IS_REPAIR: "updateExternalParameterIsRepair", + UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS: "updateExternalParameterNumberOfChips", + UPDATE_EXTERNAL_PARAMETER_DAMAGE_TYPE: "updateExternalParameterDamageType", + UPDATE_EXTERNAL_PARAMETER_ZIP_CODE: "updateExternalParameterZipCode", + UPDATE_EXTERNAL_PARAMETER_EMAIL_ADDRESS: "updateExternalParameterEmailAddress", + UPDATE_EXTERNAL_PARAMETER_IS_INSURANCE: "updateExternalParameterIsInsurance", + UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION: "updateExternalParameterVinSelection", + UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE: "updateExternalParameterServicePackage", - //RESET LEADGEN MUTATIONS - RESET_LEADGEN_VEHICLE_STATE: "resetLeadGenVehicleState", - RESETL_EADGEN_DAMAGE_STATE: "resetLeadGenDamageState", - RESET_LEADGEN_ESTIMATE_STATE: "resetLeadGenEstimateState", - RESET_LEADGEN_SERVICEZIP_STATE: "resetLeadGenServiceZipState", - RESET_LEADGEN_QUOTE_STATE: "resetLeadGenQuoteState", - RESET_IS_LEADGEN: "resetIsLeadGen", + //RESET EXTERNAL_PARAMETER MUTATIONS + RESET_EXTERNAL_PARAMETER_VEHICLE_STATE: "resetExternalParameterVehicleState", + RESET_EXTERNAL_PARAMETER_DAMAGE_STATE: "resetExternalParameterDamageState", + RESET_EXTERNAL_PARAMETER_ESTIMATE_STATE: "resetExternalParameterEstimateState", + RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE: "resetExternalParameterServiceZipState", + RESET_EXTERNAL_PARAMETER_QUOTE_STATE: "resetExternalParameterQuoteState", + RESET_IS_EXTERNAL_PARAMETER: "resetIsExternalParameter", }; export { storeMutations }; diff --git a/src/layouts/address-lookup/address-lookup.vue b/src/layouts/address-lookup/address-lookup.vue index 9655b3b87..4612348f2 100644 --- a/src/layouts/address-lookup/address-lookup.vue +++ b/src/layouts/address-lookup/address-lookup.vue @@ -150,9 +150,8 @@ export default { // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); - if (store.getters.isLeadGen) { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, diff --git a/src/layouts/capability-questions/capability-questions.vue b/src/layouts/capability-questions/capability-questions.vue index e46629bf1..7d1cb6c5b 100644 --- a/src/layouts/capability-questions/capability-questions.vue +++ b/src/layouts/capability-questions/capability-questions.vue @@ -29,6 +29,7 @@ import { Form, defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin"; +import baseMixin from "@/mixins/base-mixin.js"; // DEFINE VALIDATION RULES defineRule("questions-required", required(errorMessages.OPTION_REQUIRED)); @@ -53,6 +54,9 @@ export default { // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); + } }); }, data() { diff --git a/src/layouts/estimate/estimate.spec.js b/src/layouts/estimate/estimate.spec.js index 3ea0babd1..e51d817a5 100644 --- a/src/layouts/estimate/estimate.spec.js +++ b/src/layouts/estimate/estimate.spec.js @@ -214,9 +214,9 @@ describe("estimate.vue", () => { }); describe("estimate.vue", () => { - test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => { - store.commit(storeMutations.UPDATE_IS_LEAD_GEN, true); - store.commit(storeMutations.UPDATE_LEAD_GEN_VIN_SELECTION, "decline"); + test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => { + store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, true); + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION, "decline"); // Set up the component const { wrapper } = setupMocks({}); diff --git a/src/layouts/estimate/estimate.vue b/src/layouts/estimate/estimate.vue index dcd47cca4..89d29c744 100644 --- a/src/layouts/estimate/estimate.vue +++ b/src/layouts/estimate/estimate.vue @@ -146,26 +146,23 @@ export default { } vm.setCmsContent(resultMap.cmsContent); - if (store.getters.isLeadGen) { - if (store.getters.leadGenEstimate.vinSelection) { + if (store.getters.isExternalParameter) { + if (store.getters.externalParameterEstimate.vinSelection) { vm.selectedVinLookupMethod = vinPagesMixin.methods.getVinlookupMethod( - store.getters.leadGenEstimate.vinSelection + store.getters.externalParameterEstimate.vinSelection ); await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); if (isValid) { vm.forwardButtonAction(); } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, diff --git a/src/layouts/insurance-company/insurance-company.vue b/src/layouts/insurance-company/insurance-company.vue index bf8765b40..f675055a5 100644 --- a/src/layouts/insurance-company/insurance-company.vue +++ b/src/layouts/insurance-company/insurance-company.vue @@ -76,9 +76,8 @@ export default { next((vm) => { vm.setCmsContent(resultMap.cmsContent); vm.originalList = resultMap.insuranceCompanyList; - if (store.getters.isLeadGen) { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, diff --git a/src/layouts/license-plate-lookup/license-plate-lookup.vue b/src/layouts/license-plate-lookup/license-plate-lookup.vue index 4a87d639f..94b85a881 100644 --- a/src/layouts/license-plate-lookup/license-plate-lookup.vue +++ b/src/layouts/license-plate-lookup/license-plate-lookup.vue @@ -148,9 +148,8 @@ export default { // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); - if (store.getters.isLeadGen) { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, diff --git a/src/layouts/molding-questions/molding-questions.vue b/src/layouts/molding-questions/molding-questions.vue index b2d6804bc..379eb5eb1 100644 --- a/src/layouts/molding-questions/molding-questions.vue +++ b/src/layouts/molding-questions/molding-questions.vue @@ -29,6 +29,7 @@ import { Form, defineRule } from "vee-validate"; import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin"; +import baseMixin from "@/mixins/base-mixin.js"; // DEFINE VALIDATION RULES defineRule("questions-required", required(errorMessages.OPTION_REQUIRED)); @@ -53,6 +54,9 @@ export default { // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); + } }); }, data() { diff --git a/src/layouts/part-questions/part-questions.vue b/src/layouts/part-questions/part-questions.vue index 58be51c27..5b225e758 100644 --- a/src/layouts/part-questions/part-questions.vue +++ b/src/layouts/part-questions/part-questions.vue @@ -30,7 +30,6 @@ import { required } from "@/helpers/validation-rules"; import { errorMessages } from "@/constants/error-messages"; import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin"; import baseMixin from "@/mixins/base-mixin.js"; -import { storeActions } from "@/constants/store-actions"; // DEFINE VALIDATION RULES defineRule("questions-required", required(errorMessages.OPTION_REQUIRED)); @@ -55,9 +54,8 @@ export default { // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); - if (store.getters.isLeadGen) { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, diff --git a/src/layouts/quote/quote.spec.js b/src/layouts/quote/quote.spec.js index a453b9c1a..34041d3c4 100644 --- a/src/layouts/quote/quote.spec.js +++ b/src/layouts/quote/quote.spec.js @@ -647,8 +647,8 @@ describe("quote.vue", () => { }); }); describe("quote.vue", () => { - test("should call forwardButtonAction if isLeadGen and Insurance is true and form is valid", async () => { - // Set up the store with isLeadGen as true + test("should call forwardButtonAction if isExternalParameter and Insurance is true and form is valid", async () => { + // Set up the store with isExternalParameter as true store.getters = { lineItems: { @@ -671,8 +671,8 @@ describe("quote.vue", () => { inactivePromos: [], }, }, - isLeadGen: true, - leadGenQuote: { + isExternalParameter: true, + externalParameterQuote: { isInsurance: true, servicePackage: "glassonly", }, @@ -717,7 +717,7 @@ function setupMocks({ customMountOptions }) { ...customMountOptions, }); - baseMixin.methods.hideFmgLoadingModal = jest.fn(); + baseMixin.methods.ResetExternalParamsAndHideModal = jest.fn(); baseMixin.methods.isFormValid = jest.fn().mockReturnValue(true); mountOptions.global.mocks["$store"] = store; mountOptions["attachTo"] = document.body; diff --git a/src/layouts/quote/quote.vue b/src/layouts/quote/quote.vue index 3eb513ba5..652c5fafc 100644 --- a/src/layouts/quote/quote.vue +++ b/src/layouts/quote/quote.vue @@ -272,25 +272,22 @@ export default { validateAlerts[0].shouldAutoFade ); } - if (store.getters.isLeadGen) { - if (store.getters.leadGenQuote.isInsurance == true) { + if (store.getters.isExternalParameter) { + if (store.getters.externalParameterQuote.isInsurance == true) { vm.isInsuranceSelected = true; - vm.servicePackage = store.getters.leadGenQuote.servicePackage; + vm.servicePackage = store.getters.externalParameterQuote.servicePackage; await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); if (isValid) { vm.forwardButtonAction(); } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, diff --git a/src/layouts/quote/service-package-question/service-package-question.vue b/src/layouts/quote/service-package-question/service-package-question.vue index 94cbb7685..65687a09c 100644 --- a/src/layouts/quote/service-package-question/service-package-question.vue +++ b/src/layouts/quote/service-package-question/service-package-question.vue @@ -297,7 +297,8 @@ export default { }, selectDefaultPackage() { if (this.servicePackage != null) { - return (this.selectedPackageName = getPackageNameByType(this.servicePackage)); + this.selectedPackageName = getPackageNameByType(this.servicePackage); + return; } const promosWithAddableVaps = getPromosWithAddableVaps(this.activePromos); const vapsThatMatchPromos = getLineItemsThatMatchPromos( diff --git a/src/layouts/service-zip/service-zip.spec.js b/src/layouts/service-zip/service-zip.spec.js index 2a858548a..a9ea6c4db 100644 --- a/src/layouts/service-zip/service-zip.spec.js +++ b/src/layouts/service-zip/service-zip.spec.js @@ -165,7 +165,7 @@ function resetMockStoreData() { jobMaxMinutes: null, jobMinMinutes: null, }, - leadGenServiceZip: { + externalParameterServiceZip: { zipCode: null, emailAddress: null, }, @@ -179,7 +179,7 @@ function applyMockStoreDataToGetters() { damage: mockStoreData.damage, payment: mockStoreData.payment, policy: mockStoreData.policy, - leadGenServiceZip: mockStoreData.leadGenServiceZip, + externalParameterServiceZip: mockStoreData.externalParameterServiceZip, }; store.state.order = mockStoreData; store.state.applicationUser.experiments = mockExperimentSettings; @@ -409,9 +409,9 @@ describe("service-zip.vue", () => { }); describe("service-zip.vue", () => { - test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => { - // Set up the store with isLeadGen as true - store.getters.isLeadGen = true; + test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => { + // Set up the store with isExternalParameter as true + store.getters.isExternalParameter = true; // Set up the component const wrapper = setupMocks({}); @@ -433,9 +433,9 @@ describe("service-zip.vue", () => { expect(nextFunction).toHaveBeenCalled(); expect(wrapper.vm.forwardButtonAction).toHaveBeenCalled(); }); - test("should not call forwardButtonAction if isLeadGen is true and form is invalid", async () => { - // Set up the store with isLeadGen as true - store.getters.isLeadGen = true; + test("should not call forwardButtonAction if isExternalParameter is true and form is invalid", async () => { + // Set up the store with isExternalParameter as true + store.getters.isExternalParameter = true; // Set up the component const wrapper = setupMocks({}); @@ -465,7 +465,7 @@ function setupMocks({ customMountOptions, customZipQuery, customZipDataResponse if (customZipQuery) { route.query.zipcode = customZipQuery; } - baseMixin.methods.hideFmgLoadingModal = jest.fn(); + baseMixin.methods.ResetExternalParamsAndHideModal = jest.fn(); const mountOptions = getMountOptions({ ...customMountOptions, diff --git a/src/layouts/service-zip/service-zip.vue b/src/layouts/service-zip/service-zip.vue index 2c383cbca..b8f29c817 100644 --- a/src/layouts/service-zip/service-zip.vue +++ b/src/layouts/service-zip/service-zip.vue @@ -133,13 +133,12 @@ export default { next(async (vm) => { vm.setCmsContent(resultMap.cmsContent); - if (store.getters.isLeadGen) { + if (store.getters.isExternalParameter) { const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); if (isValid) { vm.forwardButtonAction(); } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } }); @@ -147,13 +146,13 @@ export default { methods: { getZipFromStore() { return ( - store.getters.leadGenServiceZip.zipCode ?? + store.getters.externalParameterServiceZip.zipCode ?? store.getters.order.serviceLocation.zipCode ); }, getEmailFromStore() { return ( - store.getters.leadGenServiceZip.emailAddress ?? + store.getters.externalParameterServiceZip.emailAddress ?? store.getters.order.customer.emailAddress ); }, @@ -190,9 +189,8 @@ export default { if (!zipCodeData.isValid) { this.displayInvalidZipAlert = true; - if (store.getters.isLeadGen) { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); } return this.$refs.navbar.removeLoader(); } @@ -200,9 +198,8 @@ export default { if (!zipCodeData.isServiceable) { this.displayNonServiceableZipAlert = true; - if (store.getters.isLeadGen) { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); } return this.$refs.navbar.removeLoader(); } diff --git a/src/layouts/vehicle-damage/vehicle-damage.spec.js b/src/layouts/vehicle-damage/vehicle-damage.spec.js index 3c4300ba3..b490114da 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.spec.js +++ b/src/layouts/vehicle-damage/vehicle-damage.spec.js @@ -66,8 +66,8 @@ jest.mock("@/store", () => ({ glassToReplace: [], }, }, - isLeadGen: false, - leadGenDamage: { + isExternalParameter: false, + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -153,7 +153,7 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: false } }, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -268,7 +268,7 @@ describe("vehicle-damage.vue", () => { getters: { vehicle: {}, payment: { insuranceCoverage: { isVerified: false } }, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -556,7 +556,7 @@ describe("vehicle-damage.vue", () => { eventBusItem: jest.fn(), damage: { glassToReplace: [{ glassLocation: damageLocation }] }, isRepair: true, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -638,7 +638,7 @@ describe("vehicle-damage.vue", () => { isRepair: isRepair, numberOfChips: 2, }, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -679,7 +679,7 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -720,7 +720,7 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -759,7 +759,7 @@ describe("vehicle-damage.vue", () => { glassToReplace: [{ glassLocation: damageLocation, glassName: damageName }], }, isRepair: true, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -785,7 +785,7 @@ describe("vehicle-damage.vue", () => { vehicle: {}, payment: { insuranceCoverage: { isVerified: true } }, requiresVerifiedRedirecting: true, - leadGenDamage: { + externalParameterDamage: { damageType: null, isRepair: null, numberOfChips: null, @@ -809,10 +809,10 @@ describe("vehicle-damage.vue", () => { }); describe("vehicle-damage.vue", () => { - test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => { - // Set up the store with isLeadGen as true - store.getters.isLeadGen = true; - store.getters.leadGenDamage = { + test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => { + // Set up the store with isExternalParameter as true + store.getters.isExternalParameter = true; + store.getters.externalParameterDamage = { damageType: "windshieldReplace", isRepair: false, numberOfChips: null, @@ -862,12 +862,6 @@ function setupMocks({ pageHeaderWidgetHeaderText, mountOptionsMockData, funnelCo isVerified: false, }, }, - // isLeadGen: false, - // leadGenDamage: { - // damageType: null, - // isRepair: null, - // numberOfChips: null, - // }, }, }, }; @@ -880,7 +874,7 @@ function setupMocks({ pageHeaderWidgetHeaderText, mountOptionsMockData, funnelCo //Mock api responses baseMixin.methods.dispatchStoreAction = jest.fn(); baseMixin.methods.dispatchStoreActionWithLogging = jest.fn(); - baseMixin.methods.hideFmgLoadingModal = jest.fn(); + baseMixin.methods.ResetExternalParamsAndHideModal = jest.fn(); const apiResponses = { cmsContent: { FunnelSubHeaderWidget: pageHeaderWidgetHeaderText, diff --git a/src/layouts/vehicle-damage/vehicle-damage.vue b/src/layouts/vehicle-damage/vehicle-damage.vue index ae2eae287..5744597e4 100644 --- a/src/layouts/vehicle-damage/vehicle-damage.vue +++ b/src/layouts/vehicle-damage/vehicle-damage.vue @@ -150,18 +150,16 @@ export default { vm.$refs.backGlassOptions.initializeComponent( resultMap.damageOptions.backGlassOptions.availableReplacementOptions ); - if (store.getters.isLeadGen) { + if (store.getters.isExternalParameter) { await nextTick(); const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); if (isValid) { vm.forwardButtonAction(); } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, @@ -211,8 +209,10 @@ export default { return glass.glassLocation === damageLocationsSelected.WINDSHIELD; }) || store.getters.damage.isRepair || - store.getters.leadGenDamage.isRepair || - store.getters.leadGenDamage.damageType?.toUpperCase().includes("WINDSHIELD") + store.getters.externalParameterDamage.isRepair || + store.getters.externalParameterDamage.damageType + ?.toUpperCase() + .includes("WINDSHIELD") ) { glassSelections.push(damageLocationsSelected.WINDSHIELD); } @@ -246,15 +246,16 @@ export default { }; if ( - store.getters.leadGenDamage.isRepair === undefined || + store.getters.externalParameterDamage.isRepair === undefined || store.getters.damage.isRepair === undefined ) return windshieldOptions; - if (store.getters.leadGenDamage.isRepair || store.getters.damage.isRepair) { + if (store.getters.externalParameterDamage.isRepair || store.getters.damage.isRepair) { windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPAIR; windShieldOptions.selectedWindshieldChipCount = - store.getters.leadGenDamage.numberOfChips || store.getters.damage.numberOfChips; + store.getters.externalParameterDamage.numberOfChips || + store.getters.damage.numberOfChips; } else { if ( store.getters.damage.glassToReplace?.some((glass) => { @@ -263,7 +264,8 @@ export default { glass.glassName === damageLocationsSelected.SINGLE ); }) || - store.getters.leadGenDamage.damageType?.toUpperCase() === "WINDSHIELDREPLACE" + store.getters.externalParameterDamage.damageType?.toUpperCase() === + "WINDSHIELDREPLACE" ) { windShieldOptions.selectedWindshieldDamageType = damageLocationsSelected.REPLACE; diff --git a/src/layouts/vehicle-parts/vehicle-parts.vue b/src/layouts/vehicle-parts/vehicle-parts.vue index ea33f7642..21e2240c5 100644 --- a/src/layouts/vehicle-parts/vehicle-parts.vue +++ b/src/layouts/vehicle-parts/vehicle-parts.vue @@ -72,6 +72,7 @@ import { fmgPageValues } from "@/router/router-constants/fmgPage-values"; import { Form } from "vee-validate"; import store from "@/store"; import vehicleQuestionsMixin from "@/mixins/vehicle-questions-mixin"; +import baseMixin from "@/mixins/base-mixin.js"; export default { name: "vehicle-parts", @@ -100,6 +101,9 @@ export default { FeatureQuestionWidget: resultMap.cmsContent.FeatureQuestionWidget, }) ); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); + } }); }, data() { diff --git a/src/layouts/vehicle/vehicle.spec.js b/src/layouts/vehicle/vehicle.spec.js index 0afcbc7ef..8aaab5008 100644 --- a/src/layouts/vehicle/vehicle.spec.js +++ b/src/layouts/vehicle/vehicle.spec.js @@ -28,8 +28,8 @@ jest.mock("@/store", () => ({ applicationUser: { experiments: [{ universeName: "ConceptFunnel" }], }, - isLeadGen: false, - leadGenVehicle: { + isExternalParameter: false, + externalParameterVehicle: { year: null, make: null, model: null, @@ -93,8 +93,8 @@ describe("vehicle.vue", () => { }); describe("vehicle.vue", () => { - test("should call forwardButtonAction if isLeadGen is true and form is valid", async () => { - store.getters.isLeadGen = true; + test("should call forwardButtonAction if isExternalParameter is true and form is valid", async () => { + store.getters.isExternalParameter = true; // Create a shallow mount of MyComponent const { wrapper } = setupMocks(); // Set displayNoServiceAlert to false diff --git a/src/layouts/vehicle/vehicle.vue b/src/layouts/vehicle/vehicle.vue index b61aff026..dbbf8e9c7 100644 --- a/src/layouts/vehicle/vehicle.vue +++ b/src/layouts/vehicle/vehicle.vue @@ -128,7 +128,6 @@ export default { async beforeRouteEnter(to, from, next) { // Call APIs - const cmsContentPromise = fetchCmsContentForPage(to.query.fmgPage); const experimentForLogging = store.getters.applicationUser.experiments.find( (e) => e.universeName === experimentUniverses.CONCEPT_FUNNEL @@ -141,16 +140,20 @@ export default { var makeQuestionInitialDataPromise = null; var modelQuestionInitialDataPromise = null; var styleQuestionInitialDataPromise = null; + const year = + store.getters.externalParameterVehicle.year || store.getters.order.vehicle.year; + const make = + store.getters.externalParameterVehicle.make || store.getters.order.vehicle.make; + const model = + store.getters.externalParameterVehicle.model || store.getters.order.vehicle.model; + const style = + store.getters.externalParameterVehicle.style || store.getters.order.vehicle.style; - if ( - (store.getters.leadGenVehicle.make || store.getters.order.vehicle.make) && - (store.getters.leadGenVehicle.model || store.getters.order.vehicle.model) && - (store.getters.leadGenVehicle.style || store.getters.order.vehicle.style) - ) { + if (make && model && style) { makeQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_VEHICLE_MAKES, { - year: store.getters.leadGenVehicle.year || store.getters.order.vehicle.year, + year: year, }, "vehicle" ); @@ -158,8 +161,8 @@ export default { modelQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_VEHICLE_MODELS, { - year: store.getters.leadGenVehicle.year || store.getters.order.vehicle.year, - make: store.getters.leadGenVehicle.make || store.getters.order.vehicle.make, + year: year, + make: make, }, "vehicle" ); @@ -167,9 +170,9 @@ export default { styleQuestionInitialDataPromise = baseMixin.methods.dispatchStoreActionWithLogging( storeActions.GET_VEHICLE_STYLES, { - year: store.getters.leadGenVehicle.year || store.getters.order.vehicle.year, - make: store.getters.leadGenVehicle.make || store.getters.order.vehicle.make, - model: store.getters.leadGenVehicle.model || store.getters.order.vehicle.model, + year: year, + make: make, + model: model, }, "vehicle" ); @@ -217,30 +220,34 @@ export default { let resultMap = await settleAllPromises(promiseResultMap); - //Leadgen widget have different case style value so need to parse with NextGen - if (store.getters.isLeadGen) { + //ExternalParameter widget have different case style value so need to parse with NextGen + if (store.getters.isExternalParameter) { if ( makeQuestionInitialDataPromise && modelQuestionInitialDataPromise && styleQuestionInitialDataPromise ) { const matchingMake = resultMap.makeQuestionInitialData?.filter( - (item) => item.toLowerCase() === store.getters.leadGenVehicle.make.toLowerCase() + (item) => + item.toLowerCase() === + store.getters.externalParameterVehicle.make.toLowerCase() ); const matchingModel = resultMap.modelQuestionInitialData?.filter( (item) => - item.toLowerCase() === store.getters.leadGenVehicle.model.toLowerCase() + item.toLowerCase() === + store.getters.externalParameterVehicle.model.toLowerCase() ); const matchingStyle = resultMap.styleQuestionInitialData?.filter( (item) => - item.toLowerCase() === store.getters.leadGenVehicle.style.toLowerCase() + item.toLowerCase() === + store.getters.externalParameterVehicle.style.toLowerCase() ); baseMixin.methods.dispatchStoreAction( - storeActions.UPDATE_LEADGEN_MMS, + storeActions.UPDATE_EXTERNAL_PARAMETER_MMS, { - leadGenMake: matchingMake[0], - leadGenModel: matchingModel[0], - leadGenStyle: matchingStyle[0], + externalParameterMake: matchingMake[0], + externalParameterModel: matchingModel[0], + externalParameterStyle: matchingStyle[0], }, false ); @@ -262,23 +269,20 @@ export default { resultMap.modelQuestionInitialData, resultMap.styleQuestionInitialData ); - if (store.getters.isLeadGen) { + if (store.getters.isExternalParameter) { await vm.getVehicleDetails(); if (!vm.displayNoServiceAlert) { const isValid = await baseMixin.methods.isFormValid(vm.$refs.theForm); if (isValid) { vm.forwardButtonAction(); } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } } else { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, @@ -465,16 +469,19 @@ export default { this.styleOptions = styleOptions; }, selectedYearfromStore() { - return store.getters.leadGenVehicle.year ?? store.getters.vehicle.year?.toString(); + return ( + store.getters.externalParameterVehicle.year ?? + store.getters.vehicle.year?.toString() + ); }, selectedMakefromStore() { - return store.getters.leadGenVehicle.make ?? store.getters.vehicle.make; + return store.getters.externalParameterVehicle.make ?? store.getters.vehicle.make; }, selectedModelfromStore() { - return store.getters.leadGenVehicle.model ?? store.getters.vehicle.model; + return store.getters.externalParameterVehicle.model ?? store.getters.vehicle.model; }, selectedStylefromStore() { - return store.getters.leadGenVehicle.style ?? store.getters.vehicle.style; + return store.getters.externalParameterVehicle.style ?? store.getters.vehicle.style; }, async getMakeOptions(year) { return await baseMixin.methods.dispatchStoreActionWithLogging( diff --git a/src/layouts/vin-lookup/vin-lookup.vue b/src/layouts/vin-lookup/vin-lookup.vue index 240281b3c..ddb24f924 100644 --- a/src/layouts/vin-lookup/vin-lookup.vue +++ b/src/layouts/vin-lookup/vin-lookup.vue @@ -192,9 +192,8 @@ export default { // Call the "next" function to complete the transition to this page. next((vm) => { vm.setCmsContent(resultMap.cmsContent); - if (store.getters.isLeadGen) { - baseMixin.methods.dispatchStoreAction(storeActions.RESET_LEADGEN_STATE); - baseMixin.methods.hideFmgLoadingModal(); + if (store.getters.isExternalParameter) { + baseMixin.methods.ResetExternalParamsAndHideModal(); } }); }, diff --git a/src/mixins/base-mixin.js b/src/mixins/base-mixin.js index d597348dc..d95b6d35d 100644 --- a/src/mixins/base-mixin.js +++ b/src/mixins/base-mixin.js @@ -193,7 +193,8 @@ export default { const container = document.getElementsByClassName("page-container-grouped-styles")[0]; container.scrollTo({ top: container.scrollHeight, left: 0, behavior: "smooth" }); }, - hideFmgLoadingModal() { + ResetExternalParamsAndHideModal() { + this.dispatchStoreAction(storeActions.RESET_EXTERNAL_PARAMETER_STATE); showFmgLoadingModal(false); }, async isFormValid(form) { diff --git a/src/router/index.js b/src/router/index.js index 9508a0eba..3110a8d36 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -85,25 +85,6 @@ const routes = [ ); const parentAccount = getQuerystringParameter(queryStrings.PARENT_ACCOUNT); const correlationId = getQuerystringParameter(queryStrings.CORRELATION_ID); - const leadGenYear = getQuerystringParameter(queryStrings.VEHICLE_YEAR); - const leadGenMake = getQuerystringParameter(queryStrings.VEHICLE_MAKE); - const leadGenModel = getQuerystringParameter(queryStrings.VEHICLE_MODEL); - const leadGenStyle = getQuerystringParameter(queryStrings.VEHICLE_STYLE); - const leadGenDamage = getQuerystringParameter(queryStrings.VEHICLE_DAMAGE); - const leadGenZipCode = getQuerystringParameter(queryStrings.SERVICE_ZIP); - const leadGenEmail = getQuerystringParameter(queryStrings.EMAIL); - const leadGenIsInsurance = getQuerystringParameter( - queryStrings.IS_INSURANCE - ); - const leadGenVinSelection = getQuerystringParameter( - queryStrings.VIN_SELECTION - ); - const leadGenServicePackage = getQuerystringParameter( - queryStrings.SERVICE_PACKAGE - ); - const leadGenNumberOfChips = getQuerystringParameter( - queryStrings.NUMBER_OF_CHIPS - ); if (referralNumber) { store.commit(storeMutations.UPDATE_REFERRAL_NUMBER, referralNumber); store.commit(storeMutations.UPDATE_PARENT_ACCT_NUMBER, parentAccount); @@ -113,58 +94,7 @@ const routes = [ ); updateOrCreateFunnelCookie(); } - if ( - leadGenYear && - leadGenMake && - leadGenModel && - leadGenStyle && - leadGenDamage && - leadGenZipCode && - leadGenEmail && - leadGenIsInsurance && - (leadGenDamage.toUpperCase() == "WINDSHIELDREPAIR" || - leadGenVinSelection?.length > 0) && - (leadGenIsInsurance?.toUpperCase() == "FALSE" || - leadGenServicePackage?.length > 0) && - (leadGenDamage.toUpperCase() != "WINDSHIELDREPAIR" || - leadGenNumberOfChips?.length > 0) - ) { - store.commit(storeMutations.UPDATE_IS_LEAD_GEN, true); - store.commit(storeMutations.UPDATE_LEAD_GEN_YEAR, leadGenYear); - store.commit(storeMutations.UPDATE_LEAD_GEN_MAKE, leadGenMake); - store.commit(storeMutations.UPDATE_LEAD_GEN_MODEL, leadGenModel); - store.commit(storeMutations.UPDATE_LEAD_GEN_STYLE, leadGenStyle); - store.commit(storeMutations.UPDATE_LEAD_GEN_DAMAGE_TYPE, leadGenDamage); - if (leadGenDamage.toUpperCase() == "WINDSHIELDREPLACE") { - store.commit(storeMutations.UPDATE_LEAD_GEN_IS_REPAIR, false); - store.commit(storeMutations.UPDATE_LEAD_GEN_NUMBER_OF_CHIPS, null); - } else if (leadGenDamage.toUpperCase() == "WINDSHIELDREPAIR") { - store.commit(storeMutations.UPDATE_LEAD_GEN_IS_REPAIR, true); - store.commit( - storeMutations.UPDATE_LEAD_GEN_NUMBER_OF_CHIPS, - leadGenNumberOfChips - ); - } - store.commit(storeMutations.UPDATE_LEAD_GEN_ZIP_CODE, leadGenZipCode); - store.commit( - storeMutations.UPDATE_LEAD_GEN_EMAIL_ADDRESS, - leadGenEmail - ); - if (leadGenIsInsurance?.toUpperCase() == "TRUE") { - store.commit(storeMutations.UPDATE_LEAD_GEN_IS_INSURANCE, true); - store.commit( - storeMutations.UPDATE_LEAD_GEN_SERVICE_PACKAGE, - leadGenServicePackage?.toLowerCase() - ); - } - if (leadGenDamage.toUpperCase() != "WINDSHIELDREPAIR") { - store.commit( - storeMutations.UPDATE_LEAD_GEN_VIN_SELECTION, - leadGenVinSelection - ); - } - } - + updateExternalParameterState(); const loadSessionResponse = await loadSessionIfPresent( to.query.isInsurance != null ? to.query.isInsurance == "true" @@ -305,7 +235,7 @@ router.beforeEach(async (to, from, next) => { const notToPIAReturn = toQueryPage != fmgPageValues.PAYMENT_PIA_RETURN; const isInIframe = window !== window.top; - if (store.getters.isLeadGen) { + if (store.getters.isExternalParameter) { // Check if alert event is on the bus const alertEvent = eventBus.readEventFromBus( globalEvents.Categories.GLOBAL_ALERT, @@ -318,7 +248,7 @@ router.beforeEach(async (to, from, next) => { ); // If alert event is on the bus, then display the alert if (alertEvent !== undefined || unknownAlertEvent !== undefined) { - store.commit(storeMutations.UPDATE_IS_LEAD_GEN, false); + store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, false); } } // fromPaymentToConfirmation workaround for navigating from an iframe but @@ -352,7 +282,7 @@ router.afterEach(async (to, from) => { await saveSession({ pageNameToLog: to.query.fmgPage }); } } - if (!store.getters.isLeadGen) { + if (!store.getters.isExternalParameter) { showFmgLoadingModal(false); } @@ -575,7 +505,7 @@ async function DisplayPageError() { type: globalEventTypes.Danger, } ); - store.commit(storeMutations.UPDATE_IS_LEAD_GEN, false); + store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, false); baseMixin.methods.dispatchStoreAction(storeActions.RESET_SAVE_SESSION_PROMISE); const pageError = getQuerystringParameter(queryStrings.PAGE_ERROR); @@ -655,4 +585,67 @@ function getRedirectedStartPage() { } } +function updateExternalParameterState() { + const externalParameterYear = getQuerystringParameter(queryStrings.VEHICLE_YEAR); + const externalParameterMake = getQuerystringParameter(queryStrings.VEHICLE_MAKE); + const externalParameterModel = getQuerystringParameter(queryStrings.VEHICLE_MODEL); + const externalParameterStyle = getQuerystringParameter(queryStrings.VEHICLE_STYLE); + const externalParameterDamage = getQuerystringParameter(queryStrings.VEHICLE_DAMAGE); + const externalParameterZipCode = getQuerystringParameter(queryStrings.SERVICE_ZIP); + const externalParameterEmail = getQuerystringParameter(queryStrings.EMAIL); + const externalParameterIsInsurance = getQuerystringParameter(queryStrings.IS_INSURANCE); + const externalParameterVinSelection = getQuerystringParameter(queryStrings.VIN_SELECTION); + const externalParameterServicePackage = getQuerystringParameter(queryStrings.SERVICE_PACKAGE); + const externalParameterNumberOfChips = getQuerystringParameter(queryStrings.NUMBER_OF_CHIPS); + if ( + externalParameterYear && + externalParameterMake && + externalParameterModel && + externalParameterStyle + ) { + store.commit(storeMutations.UPDATE_IS_EXTERNAL_PARAMETER, true); + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_YEAR, externalParameterYear); + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_MAKE, externalParameterMake); + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_MODEL, externalParameterModel); + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_STYLE, externalParameterStyle); + } + if ( + externalParameterDamage && + (externalParameterDamage.toUpperCase() != "WINDSHIELDREPAIR" || + externalParameterNumberOfChips?.length > 0) + ) { + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_DAMAGE_TYPE, externalParameterDamage); + if (externalParameterDamage.toUpperCase() == "WINDSHIELDREPLACE") { + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_REPAIR, false); + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS, null); + } else if (externalParameterDamage.toUpperCase() == "WINDSHIELDREPAIR") { + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_REPAIR, true); + store.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_NUMBER_OF_CHIPS, + externalParameterNumberOfChips + ); + } + } + if (externalParameterZipCode && externalParameterEmail) { + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_ZIP_CODE, externalParameterZipCode); + store.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_EMAIL_ADDRESS, + externalParameterEmail + ); + } + if (externalParameterIsInsurance?.toUpperCase() == "TRUE") { + store.commit(storeMutations.UPDATE_EXTERNAL_PARAMETER_IS_INSURANCE, true); + store.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_SERVICE_PACKAGE, + externalParameterServicePackage?.toLowerCase() + ); + } + if (externalParameterDamage.toUpperCase() != "WINDSHIELDREPAIR") { + store.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_VIN_SELECTION, + externalParameterVinSelection + ); + } +} + export default router; diff --git a/src/store/index.js b/src/store/index.js index 510d27146..7bfe5d311 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -176,7 +176,7 @@ const getDefaultState = () => { }; export const state = getDefaultState(); -export const leadGenState = getLeadGenDefaultState(); +export const externalParameterState = getExternalParameterDefaultState(); // Export Mutations export const mutations = { // VEHICLE MUTATIONS @@ -414,91 +414,92 @@ export const mutations = { state.applicationUser.eventBus.splice(itemIndex, 1); } }, - //LEADGEN MUTATIONS - updateIsLeadGen(state, isLeadGen) { - leadGenState.isLeadGen = isLeadGen; - setLeadGenState(leadGenState); + //ExternalParameter MUTATIONS + updateIsExternalParameter(state, isExternalParameter) { + externalParameterState.isExternalParameter = isExternalParameter; + saveExternalParameterState(externalParameterState); }, - updateLeadGenYear(state, year) { - leadGenState.vehicle.year = year; - setLeadGenState(leadGenState); + updateExternalParameterYear(state, year) { + externalParameterState.vehicle.year = year; + saveExternalParameterState(externalParameterState); }, - updateLeadGenMake(state, make) { - leadGenState.vehicle.make = make; - setLeadGenState(leadGenState); + updateExternalParameterMake(state, make) { + externalParameterState.vehicle.make = make; + saveExternalParameterState(externalParameterState); }, - updateLeadGenModel(state, model) { - leadGenState.vehicle.model = model; - setLeadGenState(leadGenState); + updateExternalParameterModel(state, model) { + externalParameterState.vehicle.model = model; + saveExternalParameterState(externalParameterState); }, - updateLeadGenStyle(state, style) { - leadGenState.vehicle.style = style; - setLeadGenState(leadGenState); + updateExternalParameterStyle(state, style) { + externalParameterState.vehicle.style = style; + saveExternalParameterState(externalParameterState); }, - updateLeadGenIsRepair(state, isRepair) { - leadGenState.vehicleDamage.isRepair = isRepair; - setLeadGenState(leadGenState); + updateExternalParameterIsRepair(state, isRepair) { + externalParameterState.vehicleDamage.isRepair = isRepair; + saveExternalParameterState(externalParameterState); }, - updateLeadGenNumberOfChips(state, numberOfChips) { - leadGenState.vehicleDamage.numberOfChips = numberOfChips; - setLeadGenState(leadGenState); + updateExternalParameterNumberOfChips(state, numberOfChips) { + externalParameterState.vehicleDamage.numberOfChips = numberOfChips; + saveExternalParameterState(externalParameterState); }, - updateLeadGenDamageType(state, damageType) { - leadGenState.vehicleDamage.damageType = damageType; - setLeadGenState(leadGenState); + updateExternalParameterDamageType(state, damageType) { + externalParameterState.vehicleDamage.damageType = damageType; + saveExternalParameterState(externalParameterState); }, - updateLeadGenZipCode(state, zipCode) { - leadGenState.serviceZip.zipCode = zipCode; - setLeadGenState(leadGenState); + updateExternalParameterZipCode(state, zipCode) { + externalParameterState.serviceZip.zipCode = zipCode; + saveExternalParameterState(externalParameterState); }, - updateLeadGenEmailAddress(state, emailAddress) { - leadGenState.serviceZip.emailAddress = emailAddress; - setLeadGenState(leadGenState); + updateExternalParameterEmailAddress(state, emailAddress) { + externalParameterState.serviceZip.emailAddress = emailAddress; + saveExternalParameterState(externalParameterState); }, - updateLeadGenIsInsurance(state, isInsurance) { - leadGenState.quote.isInsurance = isInsurance; - setLeadGenState(leadGenState); + updateExternalParameterIsInsurance(state, isInsurance) { + externalParameterState.quote.isInsurance = isInsurance; + saveExternalParameterState(externalParameterState); }, - updateLeadGenVinSelection(state, vinSelection) { - leadGenState.estimate.vinSelection = vinSelection; - setLeadGenState(leadGenState); + updateExternalParameterVinSelection(state, vinSelection) { + externalParameterState.estimate.vinSelection = vinSelection; + saveExternalParameterState(externalParameterState); }, - updateLeadGenServicePackage(state, servicePackage) { - leadGenState.quote.servicePackage = servicePackage; - setLeadGenState(leadGenState); + updateExternalParameterServicePackage(state, servicePackage) { + externalParameterState.quote.servicePackage = servicePackage; + saveExternalParameterState(externalParameterState); }, - //RESET LEADGEN MUTATIONS - resetLeadGenVehicleState(state) { - leadGenState.vehicle.year = - leadGenState.vehicle.make = - leadGenState.vehicle.model = - leadGenState.vehicle.style = - null; - setLeadGenState(leadGenState); + //RESET ExternalParameter MUTATIONS + resetExternalParameterVehicleState(state) { + externalParameterState.vehicle.year = null; + externalParameterState.vehicle.make = null; + externalParameterState.vehicle.model = null; + externalParameterState.vehicle.style = null; + + saveExternalParameterState(externalParameterState); }, - resetLeadGenDamageState(state) { - leadGenState.vehicleDamage.isRepair = - leadGenState.vehicleDamage.numberOfChips = - leadGenState.vehicleDamage.damageType = - null; - setLeadGenState(leadGenState); + resetExternalParameterDamageState(state) { + externalParameterState.vehicleDamage.isRepair = null; + externalParameterState.vehicleDamage.numberOfChips = null; + externalParameterState.vehicleDamage.damageType = null; + + saveExternalParameterState(externalParameterState); }, - resetLeadGenEstimateState(state) { - leadGenState.estimate.vinSelection = null; - setLeadGenState(leadGenState); + resetExternalParameterEstimateState(state) { + externalParameterState.estimate.vinSelection = null; + saveExternalParameterState(externalParameterState); }, - resetLeadGenServiceZipState(state) { - leadGenState.serviceZip.zipCode = leadGenState.serviceZip.emailAddress = null; - setLeadGenState(leadGenState); + resetExternalParameterServiceZipState(state) { + externalParameterState.serviceZip.zipCode = null; + externalParameterState.serviceZip.emailAddress = null; + saveExternalParameterState(externalParameterState); }, - resetLeadGenQuoteState(state) { - leadGenState.quote.isInsurance = null; - leadGenState.quote.servicePackage = null; - setLeadGenState(leadGenState); + resetExternalParameterQuoteState(state) { + externalParameterState.quote.isInsurance = null; + externalParameterState.quote.servicePackage = null; + saveExternalParameterState(externalParameterState); }, - resetIsLeadGen(state) { - leadGenState.isLeadGen = null; - setLeadGenState(leadGenState); + resetIsExternalParameter(state) { + externalParameterState.isExternalParameter = null; + saveExternalParameterState(externalParameterState); }, // RESET DEPENDENCY MUTATIONS @@ -890,12 +891,12 @@ export const getters = { requiresVerifiedRedirecting: (state) => { return state.order?.referralNumber?.length === 6; }, - isLeadGen: (state) => leadGenState?.isLeadGen, - leadGenVehicle: (state) => leadGenState?.vehicle, - leadGenDamage: (state) => leadGenState?.vehicleDamage, - leadGenQuote: (state) => leadGenState?.quote, - leadGenServiceZip: (state) => leadGenState?.serviceZip, - leadGenEstimate: (state) => leadGenState?.estimate, + isExternalParameter: (state) => externalParameterState?.isExternalParameter, + externalParameterVehicle: (state) => externalParameterState?.vehicle, + externalParameterDamage: (state) => externalParameterState?.vehicleDamage, + externalParameterQuote: (state) => externalParameterState?.quote, + externalParameterServiceZip: (state) => externalParameterState?.serviceZip, + externalParameterEstimate: (state) => externalParameterState?.estimate, }; function getNonFalseValuesOfPropertyInArrayOfObjects(array, propertyName) { @@ -2791,31 +2792,37 @@ export const actions = { //restore user's experiments context.commit(storeMutations.UPDATE_EXPERIMENTS, experiments); - //clear leadGen session storage - window.sessionStorage.removeItem("leadGenState"); + //clear externalParameter session storage + window.sessionStorage.removeItem("externalParameterState"); }, resetSubmittedOrder(context) { // clear from local storage window.sessionStorage.removeItem("submittedOrder"); }, - resetLeadGenState(context) { - if (context.getters.isLeadGen) { - context.commit(storeMutations.RESET_LEADGEN_VEHICLE_STATE); - context.commit(storeMutations.RESETL_EADGEN_DAMAGE_STATE); - context.commit(storeMutations.RESET_LEADGEN_ESTIMATE_STATE); - context.commit(storeMutations.RESET_LEADGEN_SERVICEZIP_STATE); - context.commit(storeMutations.RESET_LEADGEN_QUOTE_STATE); - context.commit(storeMutations.RESET_IS_LEADGEN); + resetExternalParameterState(context) { + if (context.getters.isExternalParameter) { + context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_VEHICLE_STATE); + context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_DAMAGE_STATE); + context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_ESTIMATE_STATE); + context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_SERVICEZIP_STATE); + context.commit(storeMutations.RESET_EXTERNAL_PARAMETER_QUOTE_STATE); + context.commit(storeMutations.RESET_IS_EXTERNAL_PARAMETER); } }, - createLeadGenState(context) { - createLeadGenDefaultState(); - }, - updateLeadGenMMS(context, leadGenMMS) { - context.commit(storeMutations.UPDATE_LEAD_GEN_MAKE, leadGenMMS.leadGenMake); - context.commit(storeMutations.UPDATE_LEAD_GEN_MODEL, leadGenMMS.leadGenModel); - context.commit(storeMutations.UPDATE_LEAD_GEN_STYLE, leadGenMMS.leadGenStyle); + updateExternalParameterMMS(context, externalParameterMMS) { + context.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_MAKE, + externalParameterMMS.externalParameterMake + ); + context.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_MODEL, + externalParameterMMS.externalParameterModel + ); + context.commit( + storeMutations.UPDATE_EXTERNAL_PARAMETER_STYLE, + externalParameterMMS.externalParameterStyle + ); }, }; @@ -3304,10 +3311,10 @@ async function resetScheduleIfUnavailable(context, order, pageNameToLog) { } } } -function createLeadGenDefaultState() { - // create default leadGen state - const leadGenDefaultState = { - isLeadGen: null, +function createExternalParameterDefaultState() { + // create default externalParameter state + const externalParameterDefaultState = { + isExternalParameter: null, vehicle: { year: null, make: null, @@ -3332,15 +3339,15 @@ function createLeadGenDefaultState() { }, }; // set to session storage - setLeadGenState(leadGenDefaultState); + saveExternalParameterState(externalParameterDefaultState); } -function getLeadGenDefaultState() { - const leadGenState = window.sessionStorage.getItem("leadGenState"); - if (leadGenState === null) { - createLeadGenDefaultState(); +function getExternalParameterDefaultState() { + const externalParameterState = window.sessionStorage.getItem("externalParameterState"); + if (externalParameterState === null) { + createExternalParameterDefaultState(); } - return JSON.parse(window.sessionStorage.getItem("leadGenState")); + return JSON.parse(window.sessionStorage.getItem("externalParameterState")); } -async function setLeadGenState(leadGenState) { - window.sessionStorage.setItem("leadGenState", JSON.stringify(leadGenState)); +function saveExternalParameterState(externalParameterState) { + window.sessionStorage.setItem("externalParameterState", JSON.stringify(externalParameterState)); }