From ddcd8e5cf4f2a793ad5ef5402f1643b5217a7778 Mon Sep 17 00:00:00 2001 From: credelinghuys Date: Fri, 15 May 2026 10:18:00 -0400 Subject: [PATCH] CASH-2563: Update bailout navigation blocking --- src/router/methods/before-each.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/router/methods/before-each.js b/src/router/methods/before-each.js index 9388a0865..568cf312c 100644 --- a/src/router/methods/before-each.js +++ b/src/router/methods/before-each.js @@ -76,15 +76,17 @@ export async function beforeEach(to, from) { } // Block navigation if an order has been submitted. - if (window.sessionStorage.getItem(sessionStorageKeyConstants.SUBMITTED_STATE) !== null) { - const exceptionPages = [ - FUNNEL_START_PAGE.name, - routeData.CONFIRMATION.name, - routeData.BAILOUT_SUCCESS.name, - ]; + const submittedState = window.sessionStorage.getItem( + sessionStorageKeyConstants.SUBMITTED_STATE + ); + if (submittedState !== null) { + const isBailout = getIsBailout(submittedState); + const exceptionPages = isBailout + ? [FUNNEL_START_PAGE.name, routeData.BAILOUT_SUCCESS.name] + : [FUNNEL_START_PAGE.name, routeData.CONFIRMATION.name]; if (!exceptionPages.some((name) => to.name === name) && !isVirtualRoute(to.name)) { - if (to.name === routeData.BAILOUT.name) { + if (isBailout) { router.push({ name: routeData.BAILOUT_SUCCESS.name, }); @@ -153,3 +155,8 @@ export async function beforeEach(to, from) { return; } } + +function getIsBailout(submittedState) { + const submittedStateObj = JSON.parse(submittedState); + return !!submittedStateObj?.applicationUser?.bailoutCode; +}