Skip to content

Commit 1459183

Browse files
committed
migrate SETTINGS_TAG_APPROVER
1 parent e38712f commit 1459183

7 files changed

Lines changed: 18 additions & 27 deletions

File tree

src/ROUTES.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,10 @@ const DYNAMIC_ROUTES = {
144144
path: 'keyboard-shortcuts',
145145
entryScreens: ['*'],
146146
},
147+
SETTINGS_TAG_APPROVER: {
148+
path: 'tag-approver',
149+
entryScreens: [SCREENS.SETTINGS_TAGS.SETTINGS_TAG_SETTINGS],
150+
},
147151
DETAILS_CONSTANT_PICKER: {
148152
path: 'constant-picker',
149153
entryScreens: [SCREENS.DEBUG.REPORT, SCREENS.DEBUG.REPORT_ACTION, SCREENS.DEBUG.TRANSACTION, SCREENS.DEBUG.TRANSACTION_VIOLATION],
@@ -1296,12 +1300,6 @@ const ROUTES = {
12961300
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
12971301
getUrlWithBackToParam(`settings/${policyID}/tag/${orderWeight}/${encodeURIComponent(tagName)}` as const, backTo),
12981302
},
1299-
SETTINGS_TAG_APPROVER: {
1300-
route: 'settings/:policyID/tag/:orderWeight/:tagName/approver',
1301-
getRoute: (policyID: string, orderWeight: number, tagName: string, backTo = '') =>
1302-
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
1303-
getUrlWithBackToParam(`settings/${policyID}/tag/${orderWeight}/${encodeURIComponent(tagName)}/approver` as const, backTo),
1304-
},
13051303
SETTINGS_TAG_LIST_VIEW: {
13061304
route: 'settings/:policyID/tag-list/:orderWeight',
13071305

src/SCREENS.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ const SCREENS = {
453453
SETTINGS_TAG_CREATE: 'Settings_Tag_Create',
454454
SETTINGS_TAG_EDIT: 'Settings_Tag_Edit',
455455
SETTINGS_TAG_SETTINGS: 'Settings_Tag_Settings',
456-
SETTINGS_TAG_APPROVER: 'Settings_Tag_Approver',
456+
DYNAMIC_SETTINGS_TAG_APPROVER: 'Dynamic_Settings_Tag_Approver',
457457
SETTINGS_TAG_LIST_VIEW: 'Settings_Tag_List_View',
458458
SETTINGS_TAG_GL_CODE: 'Settings_Tag_GL_Code',
459459
SETTINGS_TAGS_IMPORT: 'Settings_Tags_Import',

src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ const TagsModalStackNavigator = createModalStackNavigator({
324324
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_LIST_VIEW]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/WorkspaceViewTagsPage').default,
325325
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/WorkspaceCreateTagPage').default,
326326
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_EDIT]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/EditTagPage').default,
327-
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_APPROVER]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/TagApproverPage').default,
327+
[SCREENS.SETTINGS_TAGS.DYNAMIC_SETTINGS_TAG_APPROVER]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/TagApproverPage').default,
328328
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_GL_CODE]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/TagGLCodePage').default,
329329
});
330330

src/libs/Navigation/linkingConfig/config.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,12 +1499,7 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
14991499
orderWeight: Number,
15001500
},
15011501
},
1502-
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_APPROVER]: {
1503-
path: ROUTES.SETTINGS_TAG_APPROVER.route,
1504-
parse: {
1505-
orderWeight: Number,
1506-
},
1507-
},
1502+
[SCREENS.SETTINGS_TAGS.DYNAMIC_SETTINGS_TAG_APPROVER]: DYNAMIC_ROUTES.SETTINGS_TAG_APPROVER.path,
15081503
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_LIST_VIEW]: {
15091504
path: ROUTES.SETTINGS_TAG_LIST_VIEW.route,
15101505
parse: {

src/libs/Navigation/types.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -592,12 +592,10 @@ type SettingsNavigatorParamList = {
592592
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
593593
backTo?: Routes;
594594
};
595-
[SCREENS.SETTINGS_TAGS.SETTINGS_TAG_APPROVER]: {
595+
[SCREENS.SETTINGS_TAGS.DYNAMIC_SETTINGS_TAG_APPROVER]: {
596596
policyID: string;
597597
orderWeight: number;
598598
tagName: string;
599-
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
600-
backTo?: Routes;
601599
};
602600
[SCREENS.WORKSPACE.TAG_GL_CODE]: {
603601
policyID: string;

src/pages/workspace/tags/TagApproverPage.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React from 'react';
22
import HeaderWithBackButton from '@components/HeaderWithBackButton';
33
import ScreenWrapper from '@components/ScreenWrapper';
44
import WorkspaceMembersSelectionList from '@components/WorkspaceMembersSelectionList';
5+
import useDynamicBackPath from '@hooks/useDynamicBackPath';
56
import useLocalize from '@hooks/useLocalize';
67
import usePolicy from '@hooks/usePolicy';
78
import useThemeStyles from '@hooks/useThemeStyles';
@@ -12,27 +13,26 @@ import {getTagApproverRule} from '@libs/PolicyUtils';
1213
import type {SettingsNavigatorParamList} from '@navigation/types';
1314
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
1415
import CONST from '@src/CONST';
15-
import ROUTES from '@src/ROUTES';
16+
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
1617
import SCREENS from '@src/SCREENS';
1718

1819
type TagApproverPageProps =
1920
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.TAG_APPROVER>
20-
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.SETTINGS_TAGS.SETTINGS_TAG_APPROVER>;
21+
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.SETTINGS_TAGS.DYNAMIC_SETTINGS_TAG_APPROVER>;
2122

2223
function TagApproverPage({route}: TagApproverPageProps) {
23-
const {policyID, tagName, orderWeight, backTo} = route.params;
24+
const {policyID, tagName, orderWeight} = route.params;
2425

2526
const styles = useThemeStyles();
2627
const {translate} = useLocalize();
2728
const policy = usePolicy(policyID);
2829

2930
const tagApprover = getTagApproverRule(policy, tagName)?.approver;
30-
const isQuickSettingsFlow = route.name === SCREENS.SETTINGS_TAGS.SETTINGS_TAG_APPROVER;
31+
const isQuickSettingsFlow = route.name === SCREENS.SETTINGS_TAGS.DYNAMIC_SETTINGS_TAG_APPROVER;
32+
const backPath = useDynamicBackPath(DYNAMIC_ROUTES.SETTINGS_TAG_APPROVER.path);
3133

3234
const goBack = () => {
33-
Navigation.goBack(
34-
isQuickSettingsFlow ? ROUTES.SETTINGS_TAG_SETTINGS.getRoute(policyID, orderWeight, tagName, backTo) : ROUTES.WORKSPACE_TAG_SETTINGS.getRoute(policyID, orderWeight, tagName),
35-
);
35+
Navigation.goBack(isQuickSettingsFlow ? backPath : ROUTES.WORKSPACE_TAG_SETTINGS.getRoute(policyID, orderWeight, tagName));
3636
};
3737

3838
return (

src/pages/workspace/tags/TagSettingsPage.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import useLocalize from '@hooks/useLocalize';
1515
import usePolicyData from '@hooks/usePolicyData';
1616
import useThemeStyles from '@hooks/useThemeStyles';
1717
import {getLatestErrorMessageField} from '@libs/ErrorUtils';
18+
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
1819
import Navigation from '@libs/Navigation/Navigation';
1920
import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
2021
import {isDisablingOrDeletingLastEnabledTag} from '@libs/OptionsListUtils';
@@ -35,6 +36,7 @@ import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
3536
import {clearPolicyTagErrors, deletePolicyTags, setWorkspaceTagEnabled} from '@userActions/Policy/Tag';
3637
import CONST from '@src/CONST';
3738
import ROUTES from '@src/ROUTES';
39+
import {DYNAMIC_ROUTES} from '@src/ROUTES';
3840
import SCREENS from '@src/SCREENS';
3941

4042
type TagSettingsPageProps =
@@ -117,9 +119,7 @@ function TagSettingsPage({route, navigation}: TagSettingsPageProps) {
117119

118120
const navigateToEditTagApprover = () => {
119121
Navigation.navigate(
120-
isQuickSettingsFlow
121-
? ROUTES.SETTINGS_TAG_APPROVER.getRoute(policyID, orderWeight, currentPolicyTag.name, backTo)
122-
: ROUTES.WORKSPACE_TAG_APPROVER.getRoute(policyID, orderWeight, currentPolicyTag.name),
122+
isQuickSettingsFlow ? createDynamicRoute(DYNAMIC_ROUTES.SETTINGS_TAG_APPROVER.path) : ROUTES.WORKSPACE_TAG_APPROVER.getRoute(policyID, orderWeight, currentPolicyTag.name),
123123
);
124124
};
125125

0 commit comments

Comments
 (0)