CSR-2087
replacing LeadGenState with ExternalParameterState and add capability questions, molding questions and vehicle parts.
This commit is contained in:
parent
c197093632
commit
6ab9c34370
24 changed files with 335 additions and 334 deletions
|
|
@ -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 };
|
||||
|
|
|
|||
|
|
@ -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 };
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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({});
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue