Skip to content

Commit 2c78903

Browse files
authored
Merge pull request #75732 from FitseTLT/fix-worspace-settings-not-found-page-back-navigation
Fix - #admins - “Invite your team” deeplink redirects to Workspaces instead of Home
2 parents ba5065b + c3bd439 commit 2c78903

3 files changed

Lines changed: 27 additions & 15 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import Navigation, {navigationRef} from '@libs/Navigation/Navigation';
2+
import type {RootNavigatorParamList, State} from '@libs/Navigation/types';
3+
import NAVIGATORS from '@src/NAVIGATORS';
4+
import ROUTES from '@src/ROUTES';
5+
6+
/**
7+
* If the previous page is REPORTS_SPLIT_NAVIGATOR we navigate back to it
8+
* otherwise we go back to WORKSPACES_LIST page.
9+
*/
10+
function goBackFromWorkspaceSettingPages() {
11+
const rootState = navigationRef.getRootState() as State<RootNavigatorParamList>;
12+
const secondToLastRoute = rootState.routes.at(-2);
13+
14+
if (secondToLastRoute?.name === NAVIGATORS.REPORTS_SPLIT_NAVIGATOR) {
15+
Navigation.dismissModal();
16+
} else {
17+
Navigation.goBack(ROUTES.WORKSPACES_LIST.route);
18+
}
19+
}
20+
export default goBackFromWorkspaceSettingPages;

src/pages/workspace/AccessOrNotFoundWrapper.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@ import useReportIsArchived from '@hooks/useReportIsArchived';
1212
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1313
import {openWorkspace} from '@libs/actions/Policy/Policy';
1414
import {isValidMoneyRequestType} from '@libs/IOUUtils';
15-
import Navigation, {navigationRef} from '@libs/Navigation/Navigation';
16-
import type {RootNavigatorParamList, State} from '@libs/Navigation/types';
15+
import goBackFromWorkspaceSettingPages from '@libs/Navigation/helpers/goBackFromWorkspaceSettingPages';
16+
import Navigation from '@libs/Navigation/Navigation';
1717
import {canSendInvoice, isControlPolicy, isPaidGroupPolicy, isPolicyAccessible, isPolicyAdmin, isPolicyFeatureEnabled as isPolicyFeatureEnabledUtil} from '@libs/PolicyUtils';
1818
import {canCreateRequest} from '@libs/ReportUtils';
1919
import NotFoundPage from '@pages/ErrorPage/NotFoundPage';
2020
import type {IOUType} from '@src/CONST';
2121
import CONST from '@src/CONST';
22-
import NAVIGATORS from '@src/NAVIGATORS';
2322
import ONYXKEYS from '@src/ONYXKEYS';
2423
import ROUTES from '@src/ROUTES';
2524
import SCREENS from '@src/SCREENS';
@@ -117,14 +116,7 @@ function PageNotFoundFallback({policyID, fullPageNotFoundViewProps, isFeatureEna
117116
shouldShowOfflineIndicator={false}
118117
onBackButtonPress={() => {
119118
if (isPolicyNotAccessible) {
120-
const rootState = navigationRef.getRootState() as State<RootNavigatorParamList>;
121-
const secondToLastRoute = rootState.routes.at(-2);
122-
123-
if (secondToLastRoute?.name === NAVIGATORS.REPORTS_SPLIT_NAVIGATOR) {
124-
Navigation.dismissModal();
125-
} else {
126-
Navigation.goBack(ROUTES.WORKSPACES_LIST.route);
127-
}
119+
goBackFromWorkspaceSettingPages();
128120
return;
129121
}
130122
Navigation.goBack(policyID && !isMoneyRequest ? ROUTES.WORKSPACE_OVERVIEW.getRoute(policyID) : undefined);

src/pages/workspace/WorkspacePageWithSections.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ import usePrevious from '@hooks/usePrevious';
1717
import useResponsiveLayout from '@hooks/useResponsiveLayout';
1818
import useThemeStyles from '@hooks/useThemeStyles';
1919
import {openWorkspaceView} from '@libs/actions/BankAccounts';
20+
import goBackFromWorkspaceSettingPages from '@libs/Navigation/helpers/goBackFromWorkspaceSettingPages';
2021
import Navigation from '@libs/Navigation/Navigation';
21-
import {goBackFromInvalidPolicy, isPendingDeletePolicy, isPolicyAdmin, shouldShowPolicy as shouldShowPolicyUtil} from '@libs/PolicyUtils';
22+
import {isPendingDeletePolicy, isPolicyAdmin, shouldShowPolicy as shouldShowPolicyUtil} from '@libs/PolicyUtils';
2223
import CONST from '@src/CONST';
2324
import ONYXKEYS from '@src/ONYXKEYS';
2425
import type {Route} from '@src/ROUTES';
25-
import ROUTES from '@src/ROUTES';
2626
import type {Policy} from '@src/types/onyx';
2727
import {isEmptyObject} from '@src/types/utils/EmptyObject';
2828
import type IconAsset from '@src/types/utils/IconAsset';
@@ -198,8 +198,8 @@ function WorkspacePageWithSections({
198198
shouldShowOfflineIndicatorInWideScreen={shouldShowOfflineIndicatorInWideScreen && !shouldShow}
199199
>
200200
<FullPageNotFoundView
201-
onBackButtonPress={() => Navigation.goBack(ROUTES.WORKSPACES_LIST.route)}
202-
onLinkPress={goBackFromInvalidPolicy}
201+
onBackButtonPress={goBackFromWorkspaceSettingPages}
202+
onLinkPress={() => Navigation.goBackToHome()}
203203
shouldShow={shouldShow}
204204
subtitleKey={shouldShowPolicy ? 'workspace.common.notAuthorized' : undefined}
205205
shouldForceFullScreen

0 commit comments

Comments
 (0)