From ec973c004178db0987488938b13cc028d36e8ec5 Mon Sep 17 00:00:00 2001 From: Jeremy-Z Date: Mon, 29 Jun 2026 14:34:16 -0400 Subject: [PATCH] Initial fix for duplicate check logic issues. --- src/helpers/order-helper.js | 4 +++- src/layouts/entry-page/entry-page.vue | 10 +++++++--- src/layouts/welcome-page/welcome-page.vue | 3 ++- src/router/index.js | 14 +++++++++++--- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/helpers/order-helper.js b/src/helpers/order-helper.js index cbc5c890..b10df4ae 100644 --- a/src/helpers/order-helper.js +++ b/src/helpers/order-helper.js @@ -24,7 +24,9 @@ export async function saveSession({ shouldAwaitSaveSessionQueue = false, submitA store.setSaveSessionPromise(saveSessionPromise); - if (!store.applicationUser.savedSessionId || shouldAwaitSaveSessionQueue) { + // This should await anytime the referral number is not set, or the shouldAwaitSaveSessionQueue is set to true. + if (!store.order.referralNumber || shouldAwaitSaveSessionQueue) { + console.error('Awaiting save session promise', { shouldAwaitSaveSessionQueue, submitAfterSave, createWorkOrderNumberForPIA, bailoutOnError }); await saveSessionPromise; } } diff --git a/src/layouts/entry-page/entry-page.vue b/src/layouts/entry-page/entry-page.vue index bdbe78ae..783ec075 100644 --- a/src/layouts/entry-page/entry-page.vue +++ b/src/layouts/entry-page/entry-page.vue @@ -16,6 +16,7 @@ import showIssLoadingModal from '@/helpers/loading-modal-helper'; import applicationConfig from '@/constants/application-config'; import { toPossessive } from '@/helpers/text-helper'; import analyticsMixin from '@/mixins/analytics-mixin'; +import routerParams from '@/router/router-constants/router-params'; export default { name: 'entry-page', @@ -85,8 +86,8 @@ export default { || applicationConfig.CURRENT_ENVIRONMENT === 'Dev' || applicationConfig.CURRENT_ENVIRONMENT === 'SysTest' ) { - this.navigateForward(); - } else { + this.navigateForward(); + } else { // Forced full location redirect here. We do not want the entry page as part of the router/flow/path history. window.location = `/?issPage=${issPageValues.WELCOME_PAGE}`; } @@ -94,9 +95,12 @@ export default { methods: { navigateForward() { + // Har har har I think we were supposed to skip saving session here. this.$router.navigate( this.navigationScenarios.MOVE_FORWARD_ENTRY_PAGE, - this.$route + this.$route, + {}, + { [routerParams.SKIP_SAVE_SESSION]: true } ); }, parseQueryParms() { diff --git a/src/layouts/welcome-page/welcome-page.vue b/src/layouts/welcome-page/welcome-page.vue index 6f72d2df..2776d4e1 100644 --- a/src/layouts/welcome-page/welcome-page.vue +++ b/src/layouts/welcome-page/welcome-page.vue @@ -370,7 +370,7 @@ export default { } } - await saveSession({ shouldAwaitSaveSessionQueue: true, bailoutOnError: true }) + //await saveSession({ shouldAwaitSaveSessionQueue: true, bailoutOnError: true }) this.navigateForward(); }, async configureZip() { @@ -387,6 +387,7 @@ export default { navigateForward() { if ((this.mainStore.applicationUser.duplicateOrders?.length > 0 ?? false) && !this.answeredContinueModal) { + console.error("Duplicate orders found, navigating to duplicate check page, skipping save session"); this.$router.navigate( this.navigationScenarios.CLICKED_FORWARD_WITH_DUPLICATES, this.$route, diff --git a/src/router/index.js b/src/router/index.js index 1fbe148f..ffb0f39b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -68,7 +68,7 @@ const routes = [ await GoToStartOn404(next); } - return next({name: issPageToUse, query: to.query, params: to.params}); + return next({name: issPageToUse, query: to.query, params: to.params, state: to.state}); } var routeData = []; @@ -129,7 +129,8 @@ const routes = [ next({ name: routeData[0].name, query: Object.assign(to.query, {issPage: routeData[0].name}), - params: to.params + params: to.params, + state: to.state }); return null; } @@ -195,11 +196,18 @@ router.afterEach(async (to, from) => { const shouldRunExperiments = (to.query.issPage !== issPageValues.BAILOUT_PAGE); await analyticsMixin.methods.validateSession(); + + console.error("Router parameters", { routerParams: routerParams, toState: to.state }); - const skipSaveSession = !!router.options.history.state[routerParams.SKIP_SAVE_SESSION]; + const skipSaveSession = !!( + to.state?.[routerParams.SKIP_SAVE_SESSION] + ?? router.options.history.state?.[routerParams.SKIP_SAVE_SESSION] + ); if (from.name !== undefined && !skipSaveSession && !store.hasSubmittedOrder()) { + console.error('Saving session on route change', { from: from.name, to: to.name, skipSaveSession: skipSaveSession, hasSubmittedOrder: store.hasSubmittedOrder() }); await saveSession({ bailoutOnError: from.name === issPageValues.ENTRY_PAGE}); } + console.error('Skipping saving session on route change', { from: from.name, to: to.name, skipSaveSession: skipSaveSession, hasSubmittedOrder: store.hasSubmittedOrder() }); document.title = routerTitles[to.query.issPage] || 'Safelite Solutions®';