Skip to content

Commit caeffd1

Browse files
committed
feat: migrate workspace categories route
1 parent fdb0b0f commit caeffd1

10 files changed

Lines changed: 26 additions & 31 deletions

File tree

src/ROUTES.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,14 @@ const DYNAMIC_ROUTES = {
304304
path: 'imported',
305305
entryScreens: [SCREENS.WORKSPACE.CATEGORIES],
306306
},
307+
WORKSPACE_CATEGORIES_SETTINGS: {
308+
path: 'settings',
309+
entryScreens: [SCREENS.WORKSPACE.CATEGORIES],
310+
},
311+
WORKSPACE_CATEGORY_CREATE: {
312+
path: 'new',
313+
entryScreens: [SCREENS.WORKSPACE.CATEGORIES],
314+
},
307315
WORKSPACE_INVITE: {
308316
path: 'invite',
309317
entryScreens: [SCREENS.WORKSPACE.PROFILE, SCREENS.WORKSPACE.MEMBERS],
@@ -2327,14 +2335,6 @@ const ROUTES = {
23272335
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
23282336
getRoute: (backTo?: string) => getUrlWithBackToParam(`workspaces/pay-and-downgrade` as const, backTo),
23292337
},
2330-
WORKSPACE_CATEGORIES_SETTINGS: {
2331-
route: 'workspaces/:policyID/categories/settings',
2332-
getRoute: (policyID: string) => `workspaces/${policyID}/categories/settings` as const,
2333-
},
2334-
WORKSPACE_CATEGORY_CREATE: {
2335-
route: 'workspaces/:policyID/categories/new',
2336-
getRoute: (policyID: string) => `workspaces/${policyID}/categories/new` as const,
2337-
},
23382338
WORKSPACE_CATEGORY_EDIT: {
23392339
route: 'workspaces/:policyID/category/:categoryName/edit',
23402340
getRoute: (policyID: string, categoryName: string) => `workspaces/${policyID}/category/${encodeURIComponent(categoryName)}/edit` as const,

src/SCREENS.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,7 @@ const SCREENS = {
771771
NAME: 'Workspace_Overview_Name',
772772
CLIENT_ID: 'Workspace_Overview_Client_ID',
773773
CATEGORY_CREATE: 'Category_Create',
774+
DYNAMIC_CATEGORY_CREATE: 'Dynamic_Category_Create',
774775
CATEGORY_EDIT: 'Category_Edit',
775776
CATEGORY_PAYROLL_CODE: 'Category_Payroll_Code',
776777
CATEGORY_GL_CODE: 'Category_GL_Code',
@@ -783,6 +784,7 @@ const SCREENS = {
783784
CATEGORY_REQUIRE_ITEMIZED_RECEIPTS_OVER: 'Category_Require_Itemized_Receipts_Over',
784785
CATEGORY_REQUIRED_FIELDS: 'Category_Required_Fields',
785786
CATEGORIES_SETTINGS: 'Categories_Settings',
787+
DYNAMIC_CATEGORIES_SETTINGS: 'Dynamic_Categories_Settings',
786788
DYNAMIC_CATEGORIES_IMPORT: 'Dynamic_Categories_Import',
787789
DYNAMIC_CATEGORIES_IMPORTED: 'Dynamic_Categories_Imported',
788790
MORE_FEATURES: 'Workspace_More_Features',

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
522522
[SCREENS.WORKSPACE.CATEGORY_REQUIRED_FIELDS]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryRequiredFieldsPage').default,
523523
[SCREENS.WORKSPACE.DYNAMIC_WORKSPACE_OVERVIEW_ADDRESS]: () => require<ReactComponentModule>('../../../../pages/workspace/WorkspaceOverviewAddressPage').default,
524524
[SCREENS.WORKSPACE.DYNAMIC_WORKSPACE_OVERVIEW_PLAN]: () => require<ReactComponentModule>('../../../../pages/workspace/DynamicWorkspaceOverviewPlanTypePage').default,
525-
[SCREENS.WORKSPACE.CATEGORIES_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/WorkspaceCategoriesSettingsPage').default,
525+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/WorkspaceCategoriesSettingsPage').default,
526526
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORT]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/ImportCategoriesPage').default,
527527
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORTED]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/ImportedCategoriesPage').default,
528528
[SCREENS.WORKSPACE.UPGRADE]: () => require<ReactComponentModule>('../../../../pages/workspace/upgrade/WorkspaceUpgradePage').default,
@@ -534,7 +534,7 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
534534
[SCREENS.WORKSPACE.OWNER_CHANGE_CHECK]: () => require<ReactComponentModule>('@pages/workspace/members/WorkspaceOwnerChangeWrapperPage').default,
535535
[SCREENS.WORKSPACE.OWNER_CHANGE_SUCCESS]: () => require<ReactComponentModule>('../../../../pages/workspace/members/WorkspaceOwnerChangeSuccessPage').default,
536536
[SCREENS.WORKSPACE.OWNER_CHANGE_ERROR]: () => require<ReactComponentModule>('../../../../pages/workspace/members/WorkspaceOwnerChangeErrorPage').default,
537-
[SCREENS.WORKSPACE.CATEGORY_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CreateCategoryPage').default,
537+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CreateCategoryPage').default,
538538
[SCREENS.WORKSPACE.CATEGORY_EDIT]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/EditCategoryPage').default,
539539
[SCREENS.WORKSPACE.CATEGORY_PAYROLL_CODE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryPayrollCodePage').default,
540540
[SCREENS.WORKSPACE.CATEGORY_GL_CODE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryGLCodePage').default,

src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,11 @@ const WORKSPACE_TO_RHP: Partial<Record<keyof WorkspaceSplitNavigatorParamList, s
196196
SCREENS.WORKSPACE.TAGS_IMPORT_MULTI_LEVEL_SETTINGS,
197197
],
198198
[SCREENS.WORKSPACE.CATEGORIES]: [
199-
SCREENS.WORKSPACE.CATEGORY_CREATE,
199+
SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE,
200200
SCREENS.WORKSPACE.CATEGORY_SETTINGS,
201201
SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORT,
202202
SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORTED,
203-
SCREENS.WORKSPACE.CATEGORIES_SETTINGS,
203+
SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS,
204204
SCREENS.WORKSPACE.CATEGORY_EDIT,
205205
SCREENS.WORKSPACE.CATEGORY_GL_CODE,
206206
SCREENS.WORKSPACE.CATEGORY_PAYROLL_CODE,

src/libs/Navigation/linkingConfig/config.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -990,9 +990,7 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
990990
[SCREENS.WORKSPACE.PAY_AND_DOWNGRADE]: {
991991
path: ROUTES.WORKSPACE_PAY_AND_DOWNGRADE.route,
992992
},
993-
[SCREENS.WORKSPACE.CATEGORIES_SETTINGS]: {
994-
path: ROUTES.WORKSPACE_CATEGORIES_SETTINGS.route,
995-
},
993+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS]: DYNAMIC_ROUTES.WORKSPACE_CATEGORIES_SETTINGS.path,
996994
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORT]: DYNAMIC_ROUTES.WORKSPACE_CATEGORIES_IMPORT.path,
997995
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORTED]: DYNAMIC_ROUTES.WORKSPACE_CATEGORIES_IMPORTED.path,
998996
[SCREENS.WORKSPACE.WORKFLOWS_PAYER]: {
@@ -1016,9 +1014,7 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
10161014
[SCREENS.WORKSPACE.OWNER_CHANGE_CHECK]: {
10171015
path: ROUTES.WORKSPACE_OWNER_CHANGE_CHECK.route,
10181016
},
1019-
[SCREENS.WORKSPACE.CATEGORY_CREATE]: {
1020-
path: ROUTES.WORKSPACE_CATEGORY_CREATE.route,
1021-
},
1017+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE]: DYNAMIC_ROUTES.WORKSPACE_CATEGORY_CREATE.path,
10221018
[SCREENS.WORKSPACE.CATEGORY_EDIT]: {
10231019
path: ROUTES.WORKSPACE_CATEGORY_EDIT.route,
10241020
},

src/libs/Navigation/types.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -329,10 +329,8 @@ type SettingsNavigatorParamList = {
329329
// 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
330330
backTo?: Routes;
331331
};
332-
[SCREENS.WORKSPACE.CATEGORY_CREATE]: {
332+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE]: {
333333
policyID: string;
334-
// 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
335-
backTo?: Routes;
336334
};
337335
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_CREATE]: {
338336
policyID: string;
@@ -428,10 +426,8 @@ type SettingsNavigatorParamList = {
428426
[SCREENS.WORKSPACE.PAY_AND_DOWNGRADE]: {
429427
policyID?: string;
430428
};
431-
[SCREENS.WORKSPACE.CATEGORIES_SETTINGS]: {
429+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS]: {
432430
policyID: string;
433-
// 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
434-
backTo?: Routes;
435431
};
436432
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_SETTINGS]: {
437433
policyID: string;

src/pages/workspace/categories/CreateCategoryPage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ import SCREENS from '@src/SCREENS';
2020
import CategoryForm from './CategoryForm';
2121

2222
type CreateCategoryPageProps =
23-
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.CATEGORY_CREATE>
23+
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE>
2424
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_CREATE>;
2525

2626
function CreateCategoryPage({route}: CreateCategoryPageProps) {
2727
const [policyCategories] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${route.params.policyID}`);
2828
const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${route.params.policyID}`);
2929
const styles = useThemeStyles();
3030
const {translate} = useLocalize();
31-
const backTo = route.params?.backTo;
3231
const isQuickSettingsFlow = route.name === SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_CREATE;
32+
const backTo = isQuickSettingsFlow && 'backTo' in route.params ? route.params.backTo : undefined;
3333
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
3434
const {
3535
taskReport: setupCategoryTaskReport,

src/pages/workspace/categories/WorkspaceCategoriesPage.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -403,11 +403,11 @@ function WorkspaceCategoriesPage({route}: WorkspaceCategoriesPageProps) {
403403
};
404404

405405
const navigateToCategoriesSettings = useCallback(() => {
406-
Navigation.navigate(isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORIES_SETTINGS.getRoute(policyId, backTo) : ROUTES.WORKSPACE_CATEGORIES_SETTINGS.getRoute(policyId));
406+
Navigation.navigate(isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORIES_SETTINGS.getRoute(policyId, backTo) : createDynamicRoute(DYNAMIC_ROUTES.WORKSPACE_CATEGORIES_SETTINGS.path));
407407
}, [isQuickSettingsFlow, policyId, backTo]);
408408

409409
const navigateToCreateCategoryPage = () => {
410-
Navigation.navigate(isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORY_CREATE.getRoute(policyId, backTo) : ROUTES.WORKSPACE_CATEGORY_CREATE.getRoute(policyId));
410+
Navigation.navigate(isQuickSettingsFlow ? ROUTES.SETTINGS_CATEGORY_CREATE.getRoute(policyId, backTo) : createDynamicRoute(DYNAMIC_ROUTES.WORKSPACE_CATEGORY_CREATE.path));
411411
};
412412

413413
const dismissError = (item: ListItem) => {

src/pages/workspace/categories/WorkspaceCategoriesSettingsPage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ import KeyboardUtils from '@src/utils/keyboard';
2929

3030
type WorkspaceCategoriesSettingsPageProps = WithPolicyConnectionsProps &
3131
(
32-
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.CATEGORIES_SETTINGS>
32+
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS>
3333
| PlatformStackScreenProps<SettingsNavigatorParamList, typeof SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_SETTINGS>
3434
);
3535

3636
function WorkspaceCategoriesSettingsPage({policy, route}: WorkspaceCategoriesSettingsPageProps) {
37-
const {policyID, backTo} = route.params;
37+
const {policyID} = route.params;
3838
const styles = useThemeStyles();
3939
const {translate} = useLocalize();
4040
const policyData = usePolicyData(policyID);
@@ -44,6 +44,7 @@ function WorkspaceCategoriesSettingsPage({policy, route}: WorkspaceCategoriesSet
4444
const [categoryID, setCategoryID] = useState<string>();
4545
const [groupID, setGroupID] = useState<string>();
4646
const isQuickSettingsFlow = route.name === SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_SETTINGS;
47+
const backTo = isQuickSettingsFlow && 'backTo' in route.params ? route.params.backTo : undefined;
4748
const toggleSubtitle = isConnectedToAccounting && currentConnectionName ? translate('workspace.categories.needCategoryForExportToIntegration', currentConnectionName) : undefined;
4849

4950
const updateWorkspaceRequiresCategory = useCallback(

src/pages/workspace/withPolicy.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ type PolicyRouteName =
4242
| typeof SCREENS.WORKSPACE.OWNER_CHANGE_CHECK
4343
| typeof SCREENS.WORKSPACE.TAX_EDIT
4444
| typeof SCREENS.WORKSPACE.DYNAMIC_WORKSPACE_OVERVIEW_ADDRESS
45-
| typeof SCREENS.WORKSPACE.CATEGORIES_SETTINGS
45+
| typeof SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS
4646
| typeof SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_SETTINGS
4747
| typeof SCREENS.WORKSPACE.DISTANCE_RATE_TAX_RATE_EDIT
4848
| typeof SCREENS.WORKSPACE.DISTANCE_RATE_TAX_RECLAIMABLE_ON_EDIT

0 commit comments

Comments
 (0)