Skip to content

Commit 094dbfd

Browse files
authored
Merge pull request #88842 from mananjadhav/mj-83831-workspace-categories
2 parents 29928fd + 338d564 commit 094dbfd

11 files changed

Lines changed: 28 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: 'categories-settings',
309+
entryScreens: [SCREENS.WORKSPACE.CATEGORIES],
310+
},
311+
WORKSPACE_CATEGORY_CREATE: {
312+
path: 'category-new',
313+
entryScreens: [SCREENS.WORKSPACE.CATEGORIES],
314+
},
307315
SPEND_CATEGORY_SELECTOR: {
308316
path: 'spend-category-selector/:groupID',
309317
entryScreens: [SCREENS.WORKSPACE.CATEGORIES_SETTINGS, SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_SETTINGS],
@@ -2361,14 +2369,6 @@ const ROUTES = {
23612369
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
23622370
getRoute: (backTo?: string) => getUrlWithBackToParam(`workspaces/pay-and-downgrade` as const, backTo),
23632371
},
2364-
WORKSPACE_CATEGORIES_SETTINGS: {
2365-
route: 'workspaces/:policyID/categories/settings',
2366-
getRoute: (policyID: string) => `workspaces/${policyID}/categories/settings` as const,
2367-
},
2368-
WORKSPACE_CATEGORY_CREATE: {
2369-
route: 'workspaces/:policyID/categories/new',
2370-
getRoute: (policyID: string) => `workspaces/${policyID}/categories/new` as const,
2371-
},
23722372
WORKSPACE_CATEGORY_EDIT: {
23732373
route: 'workspaces/:policyID/category/:categoryName/edit',
23742374
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
@@ -777,6 +777,7 @@ const SCREENS = {
777777
NAME: 'Workspace_Overview_Name',
778778
CLIENT_ID: 'Workspace_Overview_Client_ID',
779779
CATEGORY_CREATE: 'Category_Create',
780+
DYNAMIC_CATEGORY_CREATE: 'Dynamic_Category_Create',
780781
CATEGORY_EDIT: 'Category_Edit',
781782
CATEGORY_PAYROLL_CODE: 'Category_Payroll_Code',
782783
CATEGORY_GL_CODE: 'Category_GL_Code',
@@ -789,6 +790,7 @@ const SCREENS = {
789790
CATEGORY_REQUIRE_ITEMIZED_RECEIPTS_OVER: 'Category_Require_Itemized_Receipts_Over',
790791
CATEGORY_REQUIRED_FIELDS: 'Category_Required_Fields',
791792
CATEGORIES_SETTINGS: 'Categories_Settings',
793+
DYNAMIC_CATEGORIES_SETTINGS: 'Dynamic_Categories_Settings',
792794
DYNAMIC_CATEGORIES_IMPORT: 'Dynamic_Categories_Import',
793795
DYNAMIC_CATEGORIES_IMPORTED: 'Dynamic_Categories_Imported',
794796
DYNAMIC_SPEND_CATEGORY_SELECTOR: 'Dynamic_Spend_Category_Selector',

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
525525
[SCREENS.WORKSPACE.CATEGORY_REQUIRED_FIELDS]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryRequiredFieldsPage').default,
526526
[SCREENS.WORKSPACE.DYNAMIC_WORKSPACE_OVERVIEW_ADDRESS]: () => require<ReactComponentModule>('../../../../pages/workspace/WorkspaceOverviewAddressPage').default,
527527
[SCREENS.WORKSPACE.DYNAMIC_WORKSPACE_OVERVIEW_PLAN]: () => require<ReactComponentModule>('../../../../pages/workspace/DynamicWorkspaceOverviewPlanTypePage').default,
528-
[SCREENS.WORKSPACE.CATEGORIES_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/WorkspaceCategoriesSettingsPage').default,
528+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/WorkspaceCategoriesSettingsPage').default,
529529
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORT]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/ImportCategoriesPage').default,
530530
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORTED]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/ImportedCategoriesPage').default,
531531
[SCREENS.WORKSPACE.DYNAMIC_SPEND_CATEGORY_SELECTOR]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/DynamicSpendCategorySelectorPage').default,
@@ -539,7 +539,7 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
539539
[SCREENS.WORKSPACE.OWNER_CHANGE_CHECK]: () => require<ReactComponentModule>('@pages/workspace/members/WorkspaceOwnerChangeWrapperPage').default,
540540
[SCREENS.WORKSPACE.OWNER_CHANGE_SUCCESS]: () => require<ReactComponentModule>('../../../../pages/workspace/members/WorkspaceOwnerChangeSuccessPage').default,
541541
[SCREENS.WORKSPACE.OWNER_CHANGE_ERROR]: () => require<ReactComponentModule>('../../../../pages/workspace/members/WorkspaceOwnerChangeErrorPage').default,
542-
[SCREENS.WORKSPACE.CATEGORY_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CreateCategoryPage').default,
542+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CreateCategoryPage').default,
543543
[SCREENS.WORKSPACE.CATEGORY_EDIT]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/EditCategoryPage').default,
544544
[SCREENS.WORKSPACE.CATEGORY_PAYROLL_CODE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryPayrollCodePage').default,
545545
[SCREENS.WORKSPACE.CATEGORY_GL_CODE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryGLCodePage').default,

src/libs/Navigation/linkingConfig/OldRoutes.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ const oldRoutes: Record<string, string> = {
55
'/settings/workspaces': '/workspaces',
66
'/r/*/settings/name': '/r/$1/details/settings/name',
77
'/workspaces/*/overview/address': '/workspaces/$1/overview/workspace-address',
8+
'/workspaces/*/categories/settings': '/workspaces/$1/categories/categories-settings',
9+
'/workspaces/*/categories/new': '/workspaces/$1/categories/category-new',
810
'/workspaces/*/accounting/*/card-reconciliation/account': '/workspaces/$1/accounting/$2/card-reconciliation/account-reconciliation-settings',
911
'/workspaces/*/connections/netsuite/export/invoice-item-preference/invoice-item/select': '/workspaces/$1/connections/netsuite/export/invoice-item-preference/select/invoice-item/select',
1012
'/workspaces/*/connections/quickbooks-online/advanced/autosync/accounting-method':

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
@@ -996,9 +996,7 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
996996
[SCREENS.WORKSPACE.PAY_AND_DOWNGRADE]: {
997997
path: ROUTES.WORKSPACE_PAY_AND_DOWNGRADE.route,
998998
},
999-
[SCREENS.WORKSPACE.CATEGORIES_SETTINGS]: {
1000-
path: ROUTES.WORKSPACE_CATEGORIES_SETTINGS.route,
1001-
},
999+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS]: DYNAMIC_ROUTES.WORKSPACE_CATEGORIES_SETTINGS.path,
10021000
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORT]: DYNAMIC_ROUTES.WORKSPACE_CATEGORIES_IMPORT.path,
10031001
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_IMPORTED]: DYNAMIC_ROUTES.WORKSPACE_CATEGORIES_IMPORTED.path,
10041002
[SCREENS.WORKSPACE.DYNAMIC_SPEND_CATEGORY_SELECTOR]: DYNAMIC_ROUTES.SPEND_CATEGORY_SELECTOR.path,
@@ -1024,9 +1022,7 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
10241022
[SCREENS.WORKSPACE.OWNER_CHANGE_CHECK]: {
10251023
path: ROUTES.WORKSPACE_OWNER_CHANGE_CHECK.route,
10261024
},
1027-
[SCREENS.WORKSPACE.CATEGORY_CREATE]: {
1028-
path: ROUTES.WORKSPACE_CATEGORY_CREATE.route,
1029-
},
1025+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE]: DYNAMIC_ROUTES.WORKSPACE_CATEGORY_CREATE.path,
10301026
[SCREENS.WORKSPACE.CATEGORY_EDIT]: {
10311027
path: ROUTES.WORKSPACE_CATEGORY_EDIT.route,
10321028
},

src/libs/Navigation/types.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -336,10 +336,8 @@ type SettingsNavigatorParamList = {
336336
// 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
337337
backTo?: Routes;
338338
};
339-
[SCREENS.WORKSPACE.CATEGORY_CREATE]: {
339+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORY_CREATE]: {
340340
policyID: string;
341-
// 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
342-
backTo?: Routes;
343341
};
344342
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_CREATE]: {
345343
policyID: string;
@@ -435,10 +433,8 @@ type SettingsNavigatorParamList = {
435433
[SCREENS.WORKSPACE.PAY_AND_DOWNGRADE]: {
436434
policyID?: string;
437435
};
438-
[SCREENS.WORKSPACE.CATEGORIES_SETTINGS]: {
436+
[SCREENS.WORKSPACE.DYNAMIC_CATEGORIES_SETTINGS]: {
439437
policyID: string;
440-
// 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
441-
backTo?: Routes;
442438
};
443439
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_SETTINGS]: {
444440
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
@@ -404,11 +404,11 @@ function WorkspaceCategoriesPage({route}: WorkspaceCategoriesPageProps) {
404404
};
405405

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

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

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

src/pages/workspace/categories/WorkspaceCategoriesSettingsPage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,19 @@ import SCREENS from '@src/SCREENS';
2828

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

3535
function WorkspaceCategoriesSettingsPage({policy, route}: WorkspaceCategoriesSettingsPageProps) {
36-
const {policyID, backTo} = route.params;
36+
const {policyID} = route.params;
3737
const styles = useThemeStyles();
3838
const {translate} = useLocalize();
3939
const policyData = usePolicyData(policyID);
4040
const isConnectedToAccounting = Object.keys(policy?.connections ?? {}).length > 0;
4141
const currentConnectionName = getCurrentConnectionName(policy);
4242
const isQuickSettingsFlow = route.name === SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_SETTINGS;
43+
const backTo = isQuickSettingsFlow && 'backTo' in route.params ? route.params.backTo : undefined;
4344
const toggleSubtitle = isConnectedToAccounting && currentConnectionName ? translate('workspace.categories.needCategoryForExportToIntegration', currentConnectionName) : undefined;
4445

4546
const updateWorkspaceRequiresCategory = useCallback(

0 commit comments

Comments
 (0)