Merge pull request #2245 from Safelite/feature/CASH-144

Feature/cash 144
This commit is contained in:
CarlNation 2025-01-23 07:23:37 -05:00 committed by GitHub
commit 8d9f46bc44
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 45 additions and 13 deletions

View file

@ -45,6 +45,9 @@
<script>
import textLink from "@/ux-components/text-link/text-link";
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 {
name: "navbar",
@ -97,7 +100,17 @@ export default {
this.$emit("ForwardClicked");
},
linkClick() {
this.$emit("BackClicked");
// check session expired and initSession to recreate cookies
if (analyticsMixin.methods.sessionExpired()) {
analyticsMixin.methods.initSession();
router.push({
path: "/",
query: { fmgPage: fmgPageValues.RETURN_USER },
});
} else {
this.$emit("BackClicked");
}
},
},
};

View file

@ -712,11 +712,8 @@ export default {
return !areAllSessionCookiesSet();
},
async validateSession() {
// The noSession function checks the cookies related to analytics logging(sid). it is not the funnel info cookie.
// 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.
// sessionExpired is true when one of the analytics cookies(sid, dxdev) has expired but we still have the funnelSessionInfo cookie
sessionExpired() {
const fromHeritage = getQuerystringParameter(queryStrings.FROM_HERITAGE) === "true";
const funnelCookieLastTouched = getFunnelCookie()?.LastTouched;
if (
@ -725,11 +722,15 @@ export default {
funnelCookieLastTouched !== null &&
funnelCookieLastTouched !== undefined
) {
await this.initSession();
router.push({
path: "/",
query: { fmgPage: fmgPageValues.RETURN_USER },
});
return true;
} else {
return false;
}
},
async validateSession() {
// do not init session if it is expired. let the click event on button-main handle session expired logic
if (this.sessionExpired()) {
return;
}

View file

@ -18,6 +18,10 @@
<script>
import loader from "@/ux-components/loader/loader";
import { fmgPageValues } from "@/router/router-constants/fmgPage-values";
import analyticsMixin from "@/mixins/analytics-mixin";
import router from "@/router/index.js";
export default {
name: "buttonMain",
@ -46,9 +50,23 @@ export default {
this.buttonText,
true
);
if (!this.isDisabled) {
if (!this.suppressLoader) this.isLoaderDisplayed = true;
this.$emit("click-event");
if (!this.suppressLoader) {
this.isLoaderDisplayed = true;
}
// check session expired and initSession to recreate cookies
if (analyticsMixin.methods.sessionExpired()) {
analyticsMixin.methods.initSession();
router.push({
path: "/",
query: { fmgPage: fmgPageValues.RETURN_USER },
});
} else {
this.$emit("click-event");
}
}
},
resetButtonStyle() {