Merge pull request #1944 from Safelite/feature/Digital/CSR-2087

CSR-2087
This commit is contained in:
hiteshkumar87 2024-08-21 16:58:09 +05:30 committed by GitHub
commit b5bfac7622
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 339 additions and 334 deletions

View file

@ -97,9 +97,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 };

View file

@ -60,7 +60,6 @@ const storeMutations = {
Customer_Portal_Login_Token: "updateCustomerPortalLoginToken",
LOCK_TOKEN: "updateLockToken",
UPDATE_SETTLED_TENDER_AMOUNT: "updateSettledTenderAmount",
UPDATE_IS_LEAD_GEN: "updateIsLeadGen",
UPDATE_IS_RECAL_ACK_OPT_IN: "updateIsRecalAckOptIn",
// EVENT BUS MUTATIONS
@ -90,27 +89,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",
//Affiliate Cookies
UPDATE_AFFILIATE_COOKIES: "updateAffiliateCookies",

View file

@ -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();
}
});
},

View file

@ -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() {

View file

@ -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({});

View file

@ -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();
}
});
},

View file

@ -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();
}
});
},

View file

@ -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();
}
});
},

View file

@ -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() {

View file

@ -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();
}
});
},

View file

@ -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;

View file

@ -271,25 +271,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();
}
});
},

View file

@ -299,7 +299,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(

View file

@ -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,

View file

@ -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();
}

View file

@ -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,

View file

@ -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;

View file

@ -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";
import { partTypeStrings } from "@/constants/part-type-strings";
export default {
@ -101,6 +102,9 @@ export default {
FeatureQuestionWidget: resultMap.cmsContent.FeatureQuestionWidget,
})
);
if (store.getters.isExternalParameter) {
baseMixin.methods.ResetExternalParamsAndHideModal();
}
});
},
data() {

View file

@ -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

View file

@ -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(

View file

@ -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();
}
});
},

View file

@ -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) {

View file

@ -86,25 +86,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);
@ -114,62 +95,15 @@ 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
);
}
}
//Update external parameter state
updateExternalParameterState();
//Affiliate Cookies
const affiliateCookies = getAffiliateCookies();
if (affiliateCookies != null && affiliateCookies.length > 0) {
store.commit(storeMutations.UPDATE_AFFILIATE_COOKIES, affiliateCookies);
}
const loadSessionResponse = await loadSessionIfPresent(
to.query.isInsurance != null
? to.query.isInsurance == "true"
@ -310,7 +244,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,
@ -323,7 +257,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
@ -357,7 +291,7 @@ router.afterEach(async (to, from) => {
await saveSession({ pageNameToLog: to.query.fmgPage });
}
}
if (!store.getters.isLeadGen) {
if (!store.getters.isExternalParameter) {
showFmgLoadingModal(false);
}
@ -580,7 +514,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);
@ -660,4 +594,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;

View file

@ -178,7 +178,7 @@ const getDefaultState = () => {
};
export const state = getDefaultState();
export const leadGenState = getLeadGenDefaultState();
export const externalParameterState = getExternalParameterDefaultState();
// Export Mutations
export const mutations = {
// VEHICLE MUTATIONS
@ -419,91 +419,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
@ -899,12 +900,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) {
@ -2819,34 +2820,40 @@ export const actions = {
//restore user's experiments
context.commit(storeMutations.UPDATE_EXPERIMENTS, experiments);
//clear externalParameter session storage
window.sessionStorage.removeItem("externalParameterState");
//restore affiliate cookies
context.commit(storeMutations.UPDATE_AFFILIATE_COOKIES, affiliateCookies);
//clear leadGen session storage
window.sessionStorage.removeItem("leadGenState");
},
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
);
},
};
@ -3335,10 +3342,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,
@ -3363,15 +3370,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));
}