Merge pull request #2247 from Safelite/feature/CASH-144-v2

CASH-144
This commit is contained in:
CarlNation 2025-01-23 12:42:33 -05:00 committed by GitHub
commit b7bc16da68
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 34 additions and 12 deletions

View file

@ -45,6 +45,9 @@
<script> <script>
import textLink from "@/ux-components/text-link/text-link"; import textLink from "@/ux-components/text-link/text-link";
import buttonMain from "@/ux-components/button-main/button-main"; import buttonMain from "@/ux-components/button-main/button-main";
import { fmgPageValues } from "@/router/router-constants/fmgPage-values";
import analyticsMixin from "@/mixins/analytics-mixin";
import router from "@/router/index.js";
export default { export default {
name: "navbar", name: "navbar",
@ -94,10 +97,28 @@ export default {
document.onkeydown = function (e) { document.onkeydown = function (e) {
return false; return false;
}; };
this.$emit("ForwardClicked"); // check session expired and initSession to recreate cookies
if (analyticsMixin.methods.sessionExpired()) {
this.routeReturnUser();
} else {
this.$emit("ForwardClicked");
}
}, },
linkClick() { linkClick() {
this.$emit("BackClicked"); // check session expired and initSession to recreate cookies
if (analyticsMixin.methods.sessionExpired()) {
this.routeReturnUser();
} else {
this.$emit("BackClicked");
}
},
routeReturnUser() {
analyticsMixin.methods.initSession();
router.push({
path: "/",
query: { fmgPage: fmgPageValues.RETURN_USER },
});
}, },
}, },
}; };

View file

@ -712,11 +712,8 @@ export default {
return !areAllSessionCookiesSet(); return !areAllSessionCookiesSet();
}, },
async validateSession() { // sessionExpired is true when one of the analytics cookies(sid, dxdev) has expired but we still have the funnelSessionInfo cookie
// The noSession function checks the cookies related to analytics logging(sid). it is not the funnel info cookie. sessionExpired() {
// The sid cookie for analytics will expire every 30 minutes and get recreated in initSession. If this happens
// and we also have the funnel cookie present, that indicates they have an existing session that is now expired
// so route them to the return user page.
const fromHeritage = getQuerystringParameter(queryStrings.FROM_HERITAGE) === "true"; const fromHeritage = getQuerystringParameter(queryStrings.FROM_HERITAGE) === "true";
const funnelCookieLastTouched = getFunnelCookie()?.LastTouched; const funnelCookieLastTouched = getFunnelCookie()?.LastTouched;
if ( if (
@ -725,11 +722,15 @@ export default {
funnelCookieLastTouched !== null && funnelCookieLastTouched !== null &&
funnelCookieLastTouched !== undefined funnelCookieLastTouched !== undefined
) { ) {
await this.initSession(); return true;
router.push({ } else {
path: "/", return false;
query: { fmgPage: fmgPageValues.RETURN_USER }, }
}); },
async validateSession() {
// do not init session if it is expired. let the click event on nav-bar handle session expired logic
if (this.sessionExpired()) {
return; return;
} }