diff --git a/src/helpers/experiment-helper.js b/src/helpers/experiment-helper.js new file mode 100644 index 000000000..c0c094529 --- /dev/null +++ b/src/helpers/experiment-helper.js @@ -0,0 +1,20 @@ +export function getExperimentSettingsFromExperimentList(experimentList) { + return ( + experimentList + .filter((x) => !!x.isActive) + .map((x) => x.settings) + .reduce((r, c) => Object.assign(r, c), {}) ?? {} + ); +} + +export function getSettingValue(settingName, experimentSettings) { + return hasSetting(settingName, experimentSettings) ? experimentSettings[settingName] : null; +} + +export function hasSettingEqualTo(settingName, settingValue, experimentSettings) { + return experimentSettings[settingName] == settingValue; +} + +export function hasSetting(settingName, experimentSettings) { + return Object.hasOwn(experimentSettings, settingName); +} diff --git a/src/layouts/confirmation/confirmation.vue b/src/layouts/confirmation/confirmation.vue index 7e9cfe71e..40fa73dbe 100644 --- a/src/layouts/confirmation/confirmation.vue +++ b/src/layouts/confirmation/confirmation.vue @@ -65,7 +65,7 @@ :isNoComp="isNoComp" :isMSRFeeApplicable="isMSRFeeApplicable" /> -
+
{ let order; if (window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE) !== null) { - order = JSON.parse(window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE)).order; + order = JSON.parse( + window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE) + ).order; } else { order = state.order; } @@ -854,29 +860,24 @@ export const getters = { isRecalibrationOnSubmittedState: (state) => { if (window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE) !== null) { return getHasRecalibrationPart({ - order: JSON.parse(window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE)).order, + order: JSON.parse( + window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE) + ).order, }); } - return false; }, shouldHideRecalibration: (state) => { - var order; if (window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE) !== null) { - order = JSON.parse(window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE)).order; - } else { - order = state.order; + state = JSON.parse(window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE)); } - + let order = state.order; + let applicationUser = state.applicationUser; if (order.payment.isInsurance) { return false; } - return ( - experimentMixin.methods - .getSettingValue(experimentSettings.RECAL_PRICE_REMOVE) - ?.toLowerCase() === "true" && getters.isRecalibrationOnOrder(state) - ); + return (hasSettingEqualTo(experimentSettings.RECAL_PRICE_REMOVE, "true", getExperimentSettingsFromExperimentList(applicationUser.experiments)) && getters.isRecalibrationOnOrder(state)) }, areRearWipersOnOrder: (state) => { return !!state.order.lineItems.vaps?.some( @@ -975,10 +976,7 @@ export const getters = { }; }, experimentSettings: (state) => - state.applicationUser.experiments - .filter((x) => !!x.isActive) - .map((x) => x.settings) - .reduce((r, c) => Object.assign(r, c), {}) ?? {}, + getExperimentSettingsFromExperimentList(state.applicationUser.experiments), isVerifiedAndDeductibleZeroConfirmed: (state) => { // used in CMS on /payment-method in Header Sub Text, for FunnelSubHeaderWidget on cart pages @@ -1855,6 +1853,7 @@ export const actions = { if (windshieldPartWithRecal) { url += `/${windshieldPartWithRecal.partNumber}`; } + url += "/false"; return globalMethods.callHttpClient({ method: endpoints.GetProviders.method, @@ -3273,7 +3272,10 @@ export const actions = { const affiliateCookies = context.state.applicationUser.affiliateCookies; // set to local storage - window.sessionStorage.setItem(sessionStorageKeyConstants.SUBMITTED_STATE, JSON.stringify(submittedState)); + window.sessionStorage.setItem( + sessionStorageKeyConstants.SUBMITTED_STATE, + JSON.stringify(submittedState) + ); window.sessionStorage.setItem("createNewSessionForHeritage", true); // clear vuex @@ -3331,7 +3333,10 @@ export const actions = { applicationUser: submittedApplicationUser, }; // set to local storage - window.sessionStorage.setItem(sessionStorageKeyConstants.SUBMITTED_STATE, JSON.stringify(submittedState)); + window.sessionStorage.setItem( + sessionStorageKeyConstants.SUBMITTED_STATE, + JSON.stringify(submittedState) + ); }, resetSubmittedState(context) {