Skip to content

Commit 0e9f934

Browse files
authored
Merge pull request #52593 from BhuvaneshPatil/51129-workspace-issue
add not found page for page accessed through link
2 parents 76e0d13 + 809ee8c commit 0e9f934

File tree

3 files changed

+49
-16
lines changed

3 files changed

+49
-16
lines changed

src/pages/workspace/categories/ImportCategoriesPage.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ import usePolicy from '@hooks/usePolicy';
55
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
66
import * as PolicyUtils from '@libs/PolicyUtils';
77
import NotFoundPage from '@pages/ErrorPage/NotFoundPage';
8+
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
9+
import CONST from '@src/CONST';
810
import ROUTES from '@src/ROUTES';
911
import type SCREENS from '@src/SCREENS';
12+
import {isEmptyObject} from '@src/types/utils/EmptyObject';
1013

1114
type ImportCategoriesPageProps = StackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.CATEGORIES_IMPORT>;
1215

@@ -22,10 +25,16 @@ function ImportCategoriesPage({route}: ImportCategoriesPageProps) {
2225
}
2326

2427
return (
25-
<ImportSpreedsheet
26-
backTo={isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES.getRoute(policyID)}
27-
goTo={isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORIES_IMPORTED.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES_IMPORTED.getRoute(policyID)}
28-
/>
28+
<AccessOrNotFoundWrapper
29+
policyID={policyID}
30+
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN]}
31+
fullPageNotFoundViewProps={{subtitleKey: isEmptyObject(policy) ? undefined : 'workspace.common.notAuthorized', onLinkPress: PolicyUtils.goBackFromInvalidPolicy}}
32+
>
33+
<ImportSpreedsheet
34+
backTo={isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES.getRoute(policyID)}
35+
goTo={isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORIES_IMPORTED.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES_IMPORTED.getRoute(policyID)}
36+
/>
37+
</AccessOrNotFoundWrapper>
2938
);
3039
}
3140

src/pages/workspace/members/ImportMembersPage.tsx

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,32 @@ import type {StackScreenProps} from '@react-navigation/stack';
22
import React from 'react';
33
import ImportSpreedsheet from '@components/ImportSpreadsheet';
44
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
5+
import * as PolicyUtils from '@libs/PolicyUtils';
6+
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
7+
import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading';
8+
import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading';
9+
import CONST from '@src/CONST';
510
import ROUTES from '@src/ROUTES';
611
import type SCREENS from '@src/SCREENS';
12+
import {isEmptyObject} from '@src/types/utils/EmptyObject';
713

8-
type ImportMembersPageProps = StackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.MEMBERS_IMPORT>;
14+
type ImportMembersPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.MEMBERS_IMPORT>;
915

10-
function ImportMembersPage({route}: ImportMembersPageProps) {
11-
const policyID = route.params.policyID;
16+
function ImportMembersPage({policy}: ImportMembersPageProps) {
17+
const policyID = policy?.id ?? '';
1218

1319
return (
14-
<ImportSpreedsheet
15-
backTo={ROUTES.WORKSPACE_MEMBERS.getRoute(policyID)}
16-
goTo={ROUTES.WORKSPACE_MEMBERS_IMPORTED.getRoute(policyID)}
17-
/>
20+
<AccessOrNotFoundWrapper
21+
policyID={policyID}
22+
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN]}
23+
fullPageNotFoundViewProps={{subtitleKey: isEmptyObject(policy) ? undefined : 'workspace.common.notAuthorized', onLinkPress: PolicyUtils.goBackFromInvalidPolicy}}
24+
>
25+
<ImportSpreedsheet
26+
backTo={ROUTES.WORKSPACE_MEMBERS.getRoute(policyID)}
27+
goTo={ROUTES.WORKSPACE_MEMBERS_IMPORTED.getRoute(policyID)}
28+
/>
29+
</AccessOrNotFoundWrapper>
1830
);
1931
}
2032

21-
export default ImportMembersPage;
33+
export default withPolicyAndFullscreenLoading(ImportMembersPage);

src/pages/workspace/tags/ImportTagsPage.tsx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,34 @@
11
import type {StackScreenProps} from '@react-navigation/stack';
22
import React from 'react';
33
import ImportSpreedsheet from '@components/ImportSpreadsheet';
4+
import usePolicy from '@hooks/usePolicy';
45
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
6+
import * as PolicyUtils from '@libs/PolicyUtils';
7+
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
8+
import CONST from '@src/CONST';
59
import ROUTES from '@src/ROUTES';
610
import type SCREENS from '@src/SCREENS';
11+
import {isEmptyObject} from '@src/types/utils/EmptyObject';
712

813
type ImportTagsPageProps = StackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.TAGS_IMPORT>;
914

1015
function ImportTagsPage({route}: ImportTagsPageProps) {
1116
const policyID = route.params.policyID;
17+
const policy = usePolicy(policyID);
1218
const backTo = route.params.backTo;
1319
const isQuickSettingsFlow = !!backTo;
1420

1521
return (
16-
<ImportSpreedsheet
17-
backTo={isQuickSettingsFlow ? ROUTES.SETTINGS_TAGS_ROOT.getRoute(policyID, backTo) : ROUTES.WORKSPACE_TAGS.getRoute(policyID)}
18-
goTo={isQuickSettingsFlow ? ROUTES.SETTINGS_TAGS_IMPORTED.getRoute(policyID, backTo) : ROUTES.WORKSPACE_TAGS_IMPORTED.getRoute(policyID)}
19-
/>
22+
<AccessOrNotFoundWrapper
23+
policyID={policyID}
24+
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN]}
25+
fullPageNotFoundViewProps={{subtitleKey: isEmptyObject(policy) ? undefined : 'workspace.common.notAuthorized', onLinkPress: PolicyUtils.goBackFromInvalidPolicy}}
26+
>
27+
<ImportSpreedsheet
28+
backTo={isQuickSettingsFlow ? ROUTES.SETTINGS_TAGS_ROOT.getRoute(policyID, backTo) : ROUTES.WORKSPACE_TAGS.getRoute(policyID)}
29+
goTo={isQuickSettingsFlow ? ROUTES.SETTINGS_TAGS_IMPORTED.getRoute(policyID, backTo) : ROUTES.WORKSPACE_TAGS_IMPORTED.getRoute(policyID)}
30+
/>
31+
</AccessOrNotFoundWrapper>
2032
);
2133
}
2234

0 commit comments

Comments
 (0)