Merge remote-tracking branch 'origin/release/2024.02.08' into feature/skiener/promo-unit-tests
This commit is contained in:
commit
9fd8c7aac4
6 changed files with 29 additions and 20 deletions
|
|
@ -129,7 +129,7 @@ export default {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
background: $gray-100;
|
background: $white;
|
||||||
|
|
||||||
&.full-screen {
|
&.full-screen {
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|
|
||||||
|
|
@ -387,7 +387,9 @@ export default {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
.header-container {
|
.header-container {
|
||||||
text-align: center;
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
padding: 1rem 0 1.5rem 0;
|
padding: 1rem 0 1.5rem 0;
|
||||||
|
|
||||||
p {
|
p {
|
||||||
|
|
@ -395,6 +397,11 @@ export default {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
color: $black;
|
color: $black;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
margin-right: 0.5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,9 @@ export default {
|
||||||
return Object.hasOwn(store.getters.experimentSettings, settingName);
|
return Object.hasOwn(store.getters.experimentSettings, settingName);
|
||||||
},
|
},
|
||||||
getSettingValue(settingName) {
|
getSettingValue(settingName) {
|
||||||
if (this.hasSetting(settingName)) {
|
return this.hasSetting(settingName)
|
||||||
return store.getters.experimentSettings[settingName];
|
? store.getters.experimentSettings[settingName]
|
||||||
} else if (store.getters.hasSubmittedOrder) {
|
: null;
|
||||||
const experimentSettings = store.getters.submittedOrder.experiments
|
|
||||||
.filter((x) => x.isActive)
|
|
||||||
.reduce((r, c) => ({ ...r, ...c.settings }), {});
|
|
||||||
return experimentSettings[settingName] ?? null;
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import { queryStrings } from "@/constants/query-strings";
|
||||||
import { getQuerystringParameter } from "@/helpers/querystring-helper";
|
import { getQuerystringParameter } from "@/helpers/querystring-helper";
|
||||||
import { getDeviceIdValue } from "@/helpers/heritage-integration/cookie-helper";
|
import { getDeviceIdValue } from "@/helpers/heritage-integration/cookie-helper";
|
||||||
import { showFmgLoadingModal } from "@/helpers/loading-modal-helper";
|
import { showFmgLoadingModal } from "@/helpers/loading-modal-helper";
|
||||||
import { fmgPageValues, homepageName } from "@/router/router-constants/fmgPage-values";
|
import { fmgPageValues, funnelStartPageName } from "@/router/router-constants/fmgPage-values";
|
||||||
|
|
||||||
// Heritage integration
|
// Heritage integration
|
||||||
import { isSavedSessionStillActive } from "@/helpers/heritage-integration/session-helper";
|
import { isSavedSessionStillActive } from "@/helpers/heritage-integration/session-helper";
|
||||||
|
|
@ -17,6 +17,7 @@ import {
|
||||||
updateOrCreateFunnelCookie,
|
updateOrCreateFunnelCookie,
|
||||||
getFunnelCookie,
|
getFunnelCookie,
|
||||||
updateSessionIdCookie,
|
updateSessionIdCookie,
|
||||||
|
deleteFunnelCookie,
|
||||||
} from "@/helpers/heritage-integration/cookie-helper";
|
} from "@/helpers/heritage-integration/cookie-helper";
|
||||||
import { loadSessionIfPresent, saveSession } from "@/helpers/heritage-integration/order-helper";
|
import { loadSessionIfPresent, saveSession } from "@/helpers/heritage-integration/order-helper";
|
||||||
import {
|
import {
|
||||||
|
|
@ -49,12 +50,13 @@ const routes = [
|
||||||
// If the saved session has timed out, clear the session, execute 404 logic.
|
// If the saved session has timed out, clear the session, execute 404 logic.
|
||||||
if (getFunnelCookie() !== null && !isSavedSessionStillActive()) {
|
if (getFunnelCookie() !== null && !isSavedSessionStillActive()) {
|
||||||
await baseMixin.methods.dispatchStoreAction(storeActions.RESET_STATE);
|
await baseMixin.methods.dispatchStoreAction(storeActions.RESET_STATE);
|
||||||
|
deleteFunnelCookie();
|
||||||
GoToFunnelStartOn404(next);
|
GoToFunnelStartOn404(next);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Intercept all navigation if a submitted order exists in storage
|
// Intercept all navigation if a submitted order exists in storage
|
||||||
if (store.getters.hasSubmittedOrder) {
|
if (store.getters.hasSubmittedOrder) {
|
||||||
if (to.query.fmgPage !== homepageName) {
|
if (to.query.fmgPage !== funnelStartPageName) {
|
||||||
to.query.fmgPage = fmgPageValues.CONFIRMATION;
|
to.query.fmgPage = fmgPageValues.CONFIRMATION;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -141,6 +143,11 @@ const routes = [
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
|
|
||||||
|
if (to.query?.fmgPage === funnelStartPageName) {
|
||||||
|
deleteFunnelCookie();
|
||||||
|
await baseMixin.methods.dispatchStoreAction(storeActions.RESET_STATE);
|
||||||
|
}
|
||||||
|
|
||||||
// If we don't have a route, go to our 404 page.
|
// If we don't have a route, go to our 404 page.
|
||||||
GoToFunnelStartOn404(next);
|
GoToFunnelStartOn404(next);
|
||||||
}
|
}
|
||||||
|
|
@ -185,7 +192,7 @@ router.beforeEach(async (to, from, next) => {
|
||||||
// Refresh page if navigating to self to prevent locking.
|
// Refresh page if navigating to self to prevent locking.
|
||||||
// For now only carved out for vehicle; all modals are opened through anchor tags at the moment,
|
// For now only carved out for vehicle; all modals are opened through anchor tags at the moment,
|
||||||
// which also self navigate, but relied on the page remaining the same on self-navigation.
|
// which also self navigate, but relied on the page remaining the same on self-navigation.
|
||||||
} else if (toQueryPage === fromQueryPage && toQueryPage === homepageName) {
|
} else if (toQueryPage === fromQueryPage && toQueryPage === funnelStartPageName) {
|
||||||
router.go(0);
|
router.go(0);
|
||||||
} else {
|
} else {
|
||||||
next();
|
next();
|
||||||
|
|
@ -403,7 +410,7 @@ function GoToFunnelStartOn404(next) {
|
||||||
|
|
||||||
next({
|
next({
|
||||||
path: "/",
|
path: "/",
|
||||||
query: { fmgPage: homepageName },
|
query: { fmgPage: funnelStartPageName },
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,6 @@ const fmgPageValues = {
|
||||||
CONFIRMATION: "confirmation",
|
CONFIRMATION: "confirmation",
|
||||||
};
|
};
|
||||||
|
|
||||||
const homepageName = fmgPageValues.VEHICLE;
|
const funnelStartPageName = fmgPageValues.VEHICLE;
|
||||||
|
|
||||||
export { fmgPageValues, homepageName };
|
export { fmgPageValues, funnelStartPageName };
|
||||||
|
|
|
||||||
|
|
@ -2514,14 +2514,16 @@ export const actions = {
|
||||||
// create a submitted order object from vuex.
|
// create a submitted order object from vuex.
|
||||||
const submittedOrder = context.state.order;
|
const submittedOrder = context.state.order;
|
||||||
|
|
||||||
//add experiments to submittedOrder
|
const experiments = context.state.applicationUser.experiments;
|
||||||
submittedOrder.experiments = context.state.applicationUser.experiments;
|
|
||||||
|
|
||||||
// set to local storage
|
// set to local storage
|
||||||
window.sessionStorage.setItem("submittedOrder", JSON.stringify(submittedOrder));
|
window.sessionStorage.setItem("submittedOrder", JSON.stringify(submittedOrder));
|
||||||
|
|
||||||
// clear vuex
|
// clear vuex
|
||||||
context.commit(storeMutations.RESET_STATE);
|
context.commit(storeMutations.RESET_STATE);
|
||||||
|
|
||||||
|
//restore user's experiments
|
||||||
|
context.commit(storeMutations.UPDATE_EXPERIMENTS, experiments);
|
||||||
},
|
},
|
||||||
|
|
||||||
resetSubmittedOrder(context) {
|
resetSubmittedOrder(context) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue