From 0208028ebba683a1e3d16fa630012e9322f1cfac Mon Sep 17 00:00:00 2001 From: lorretheboy Date: Thu, 8 Jan 2026 01:56:53 +0700 Subject: [PATCH 1/4] fix: Add work email - Back button not working on Join workspace screen --- .../BaseOnboardingWorkEmailValidation.tsx | 2 +- src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx b/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx index 26b6fd1d05f6..7706383d75cd 100644 --- a/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx +++ b/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx @@ -60,7 +60,7 @@ function BaseOnboardingWorkEmailValidation({shouldUseNativeStyles}: BaseOnboardi } if (!onboardingValues?.isMergeAccountStepSkipped) { - Navigation.navigate(ROUTES.ONBOARDING_WORKSPACES.getRoute(), {forceReplace: true}); + Navigation.navigate(ROUTES.ONBOARDING_WORKSPACES.getRoute(ROUTES.ONBOARDING_PERSONAL_DETAILS.getRoute()), {forceReplace: true}); return; } diff --git a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx index 3a41fe739e20..0b3b4f25e873 100644 --- a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx +++ b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx @@ -26,6 +26,7 @@ import {setOnboardingAdminsChatReportID, setOnboardingPolicyID} from '@userActio import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; +import type {Route} from '@src/ROUTES'; import type {JoinablePolicy} from '@src/types/onyx/JoinablePolicies'; import type {BaseOnboardingWorkspacesProps} from './types'; @@ -124,8 +125,8 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding ); const handleBackButtonPress = useCallback(() => { - Navigation.goBack(); - }, []); + Navigation.goBack(route.params?.backTo as Route); + }, [route.params?.backTo]); const skipJoiningWorkspaces = () => { if (isVsb) { From e2ce576cbfaa542932bfef6b5b55796ca09c6393 Mon Sep 17 00:00:00 2001 From: lorretheboy Date: Sun, 11 Jan 2026 10:22:22 +0700 Subject: [PATCH 2/4] fix: test --- tests/ui/WorkEmailOnboarding.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ui/WorkEmailOnboarding.tsx b/tests/ui/WorkEmailOnboarding.tsx index 65e39f4985a8..a03e40c29435 100644 --- a/tests/ui/WorkEmailOnboarding.tsx +++ b/tests/ui/WorkEmailOnboarding.tsx @@ -510,7 +510,7 @@ describe('OnboardingWorkEmailValidation Page', () => { await waitForBatchedUpdatesWithAct(); await waitFor(() => { - expect(navigate).toHaveBeenCalledWith(ROUTES.ONBOARDING_WORKSPACES.getRoute(), {forceReplace: true}); + expect(navigate).toHaveBeenCalledWith(`${ROUTES.ONBOARDING_WORKSPACES.getRoute()}?backTo=${encodeURIComponent(ROUTES.ONBOARDING_PERSONAL_DETAILS.route)}`, {forceReplace: true}); }); unmount(); From b4d9bc8418f7374c5eb651a576f428b985ee4798 Mon Sep 17 00:00:00 2001 From: lorretheboy Date: Sat, 21 Feb 2026 01:55:19 +0700 Subject: [PATCH 3/4] fix: flow --- .../BaseOnboardingWorkEmailValidation.tsx | 2 +- .../OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx | 7 +++---- tests/ui/WorkEmailOnboarding.tsx | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx b/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx index 66022f1096a3..71aa01dd3d9d 100644 --- a/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx +++ b/src/pages/OnboardingWorkEmailValidation/BaseOnboardingWorkEmailValidation.tsx @@ -60,7 +60,7 @@ function BaseOnboardingWorkEmailValidation({shouldUseNativeStyles}: BaseOnboardi } if (!onboardingValues?.isMergeAccountStepSkipped) { - Navigation.navigate(ROUTES.ONBOARDING_WORKSPACES.getRoute(ROUTES.ONBOARDING_PERSONAL_DETAILS.getRoute()), {forceReplace: true}); + Navigation.navigate(ROUTES.ONBOARDING_WORKSPACES.getRoute(), {forceReplace: true}); return; } diff --git a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx index 35ba88ac9e1e..7185f5a95301 100644 --- a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx +++ b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx @@ -27,7 +27,6 @@ import {setOnboardingAdminsChatReportID, setOnboardingPolicyID} from '@userActio import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; -import type {Route} from '@src/ROUTES'; import type {JoinablePolicy} from '@src/types/onyx/JoinablePolicies'; import type {BaseOnboardingWorkspacesProps} from './types'; @@ -149,8 +148,8 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding ); const handleBackButtonPress = useCallback(() => { - Navigation.goBack(route.params?.backTo as Route); - }, [route.params?.backTo]); + Navigation.goBack(); + }, []); const skipJoiningWorkspaces = () => { if (isVsb) { @@ -174,7 +173,7 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding shouldShowOfflineIndicator={isSmallScreenWidth} > { await waitForBatchedUpdatesWithAct(); await waitFor(() => { - expect(navigate).toHaveBeenCalledWith(`${ROUTES.ONBOARDING_WORKSPACES.getRoute()}?backTo=${encodeURIComponent(ROUTES.ONBOARDING_PERSONAL_DETAILS.route)}`, {forceReplace: true}); + expect(navigate).toHaveBeenCalledWith(ROUTES.ONBOARDING_WORKSPACES.getRoute(), {forceReplace: true}); }); unmount(); From ddfa300950c05955bf904e8c9478ea6673df44a8 Mon Sep 17 00:00:00 2001 From: lorretheboy Date: Mon, 9 Mar 2026 00:40:45 +0700 Subject: [PATCH 4/4] fix: logic --- .../BaseOnboardingWorkspaces.tsx | 3 +- tests/ui/WorkspaceOnboarding.tsx | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx index eeba1f6fbdd9..2f40b3f2a859 100644 --- a/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx +++ b/src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx @@ -62,6 +62,7 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding const [onboardingValues] = useOnyx(ONYXKEYS.NVP_ONBOARDING); const isVsb = onboardingValues?.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB; const isSmb = onboardingValues?.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.SMB; + const shouldHideBackButton = onboardingValues?.shouldValidate === false && route.params?.backTo === ROUTES.ONBOARDING_PERSONAL_DETAILS.getRoute(); const handleJoinWorkspace = (policy: JoinablePolicy) => { if (policy.automaticJoiningEnabled) { @@ -153,7 +154,7 @@ function BaseOnboardingWorkspaces({route, shouldUseNativeStyles}: BaseOnboarding shouldShowOfflineIndicator={isSmallScreenWidth} > Navigation.goBack()} shouldDisplayHelpButton={false} diff --git a/tests/ui/WorkspaceOnboarding.tsx b/tests/ui/WorkspaceOnboarding.tsx index 58a15e83c2f4..134697814764 100644 --- a/tests/ui/WorkspaceOnboarding.tsx +++ b/tests/ui/WorkspaceOnboarding.tsx @@ -130,4 +130,47 @@ describe('OnboardingWorkspaces Page', () => { unmount(); await waitForBatchedUpdatesWithAct(); }); + + it('should not show the back button on join workspace after Add work email flow', async () => { + await TestHelper.signInWithTestUser(); + + await act(async () => { + await Onyx.merge(ONYXKEYS.NVP_ONBOARDING, { + hasCompletedGuidedSetupFlow: false, + shouldValidate: false, + }); + }); + + const {unmount} = renderOnboardingWorkspacesPage(SCREENS.ONBOARDING.WORKSPACES, {backTo: ROUTES.ONBOARDING_PERSONAL_DETAILS.getRoute()}); + + await waitForBatchedUpdatesWithAct(); + + await waitFor(() => { + expect(screen.queryByLabelText(TestHelper.translateLocal('common.back'))).not.toBeOnTheScreen(); + }); + + unmount(); + await waitForBatchedUpdatesWithAct(); + }); + + it('should show the back button on join workspace for the standard personal details flow', async () => { + await TestHelper.signInWithTestUser(); + + await act(async () => { + await Onyx.merge(ONYXKEYS.NVP_ONBOARDING, { + hasCompletedGuidedSetupFlow: false, + }); + }); + + const {unmount} = renderOnboardingWorkspacesPage(SCREENS.ONBOARDING.WORKSPACES, {backTo: ROUTES.ONBOARDING_PERSONAL_DETAILS.getRoute()}); + + await waitForBatchedUpdatesWithAct(); + + await waitFor(() => { + expect(screen.getByLabelText(TestHelper.translateLocal('common.back'))).toBeOnTheScreen(); + }); + + unmount(); + await waitForBatchedUpdatesWithAct(); + }); });