Skip to content

Commit

Permalink
Fix routes for RHP on categories
Browse files Browse the repository at this point in the history
Signed-off-by: GitHub <noreply@github.com>
  • Loading branch information
twilight294 authored Oct 11, 2024
1 parent 4f38b4e commit 8694a58
Show file tree
Hide file tree
Showing 13 changed files with 112 additions and 51 deletions.
20 changes: 19 additions & 1 deletion src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,25 @@ const ROUTES = {
},
SETTINGS_CATEGORY_EDIT: {
route: 'settings/:policyID/category/:categoryName/edit',
getRoute: (policyID: string, categoryName: string, backTo = '') => getUrlWithBackToParam(`settings/workspaces/${policyID}/category/${encodeURIComponent(categoryName)}/edit`, backTo),
getRoute: (policyID: string, categoryName: string, backTo = '') => getUrlWithBackToParam(`settings/${policyID}/category/${encodeURIComponent(categoryName)}/edit`, backTo),
},
SETTINGS_CATEGORIES_IMPORT: {
route: 'settings/:policyID/categories/import',
getRoute: (policyID: string, backTo = '') => getUrlWithBackToParam(`settings/${policyID}/categories/import` as const, backTo),
},
SETTINGS_CATEGORIES_IMPORTED: {
route: 'settings/:policyID/categories/imported',
getRoute: (policyID: string, backTo = '') => getUrlWithBackToParam(`settings/${policyID}/categories/imported` as const, backTo),
},
SETTINGS_CATEGORY_PAYROLL_CODE: {
route: 'settings/:policyID/category/:categoryName/payroll-code',
getRoute: (policyID: string, categoryName: string, backTo = '') =>
getUrlWithBackToParam(`settings/${policyID}/category/${encodeURIComponent(categoryName)}/payroll-code` as const, backTo),
},
SETTINGS_CATEGORY_GL_CODE: {
route: 'settings/:policyID/category/:categoryName/gl-code',
getRoute: (policyID: string, categoryName: string, backTo = '') =>
getUrlWithBackToParam(`settings/${policyID}/category/${encodeURIComponent(categoryName)}/gl-code` as const, backTo),
},
MONEY_REQUEST_STEP_CURRENCY: {
route: ':action/:iouType/currency/:transactionID/:reportID/:pageIndex?',
Expand Down
4 changes: 4 additions & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,10 @@ const SCREENS = {
SETTINGS_CATEGORY_CREATE: 'Settings_Category_Create',
SETTINGS_CATEGORY_EDIT: 'Settings_Category_Edit',
SETTINGS_CATEGORIES_ROOT: 'Settings_Categories',
SETTINGS_CATEGORIES_IMPORT: 'Settings_Categories_Import',
SETTINGS_CATEGORIES_IMPORTED: 'Settings_Categories_Imported',
SETTINGS_CATEGORY_PAYROLL_CODE: 'Settings_Category_Payroll_Code',
SETTINGS_CATEGORY_GL_CODE: 'Settings_Category_GL_Code',
},
EXPENSIFY_CARD: {
EXPENSIFY_CARD_DETAILS: 'Expensify_Card_Details',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ const CategoriesModalStackNavigator = createModalStackNavigator({
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CreateCategoryPage').default,
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_EDIT]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/EditCategoryPage').default,
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategorySettingsPage').default,
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_IMPORT]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/ImportCategoriesPage').default,
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_IMPORTED]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/ImportedCategoriesPage').default,
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_PAYROLL_CODE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryPayrollCodePage').default,
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_GL_CODE]: () => require<ReactComponentModule>('../../../../pages/workspace/categories/CategoryGLCodePage').default,
});

const TagsModalStackNavigator = createModalStackNavigator({
Expand Down
18 changes: 18 additions & 0 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -925,6 +925,24 @@ const config: LinkingOptions<RootStackParamList>['config'] = {
categoryName: (categoryName: string) => decodeURIComponent(categoryName),
},
},
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_IMPORT]: {
path: ROUTES.SETTINGS_CATEGORIES_IMPORT.route,
},
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORIES_IMPORTED]: {
path: ROUTES.SETTINGS_CATEGORIES_IMPORTED.route,
},
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_PAYROLL_CODE]: {
path: ROUTES.SETTINGS_CATEGORY_PAYROLL_CODE.route,
parse: {
categoryName: (categoryName: string) => decodeURIComponent(categoryName),
},
},
[SCREENS.SETTINGS_CATEGORIES.SETTINGS_CATEGORY_GL_CODE]: {
path: ROUTES.SETTINGS_CATEGORY_GL_CODE.route,
parse: {
categoryName: (categoryName: string) => decodeURIComponent(categoryName),
},
},
},
},
[SCREENS.RIGHT_MODAL.SETTINGS_TAGS]: {
Expand Down
4 changes: 4 additions & 0 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -210,10 +210,12 @@ type SettingsNavigatorParamList = {
[SCREENS.WORKSPACE.CATEGORY_PAYROLL_CODE]: {
policyID: string;
categoryName: string;
backTo?: Routes;
};
[SCREENS.WORKSPACE.CATEGORY_GL_CODE]: {
policyID: string;
categoryName: string;
backTo?: Routes;
};
[SCREENS.WORKSPACE.CATEGORY_DEFAULT_TAX_RATE]: {
policyID: string;
Expand Down Expand Up @@ -251,9 +253,11 @@ type SettingsNavigatorParamList = {
};
[SCREENS.WORKSPACE.CATEGORIES_IMPORT]: {
policyID: string;
backTo?: Routes;
};
[SCREENS.WORKSPACE.CATEGORIES_IMPORTED]: {
policyID: string;
backTo?: Routes;
};
[SCREENS.WORKSPACE.TAG_CREATE]: {
policyID: string;
Expand Down
15 changes: 13 additions & 2 deletions src/pages/workspace/categories/CategoryGLCodePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ function CategoryGLCodePage({route}: EditCategoryPageProps) {
const styles = useThemeStyles();
const {translate} = useLocalize();
const policyId = route.params.policyID ?? '-1';
const backTo = route.params.backTo;
const [policyCategories] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyId}`);

const categoryName = route.params.categoryName;
Expand All @@ -38,7 +39,11 @@ function CategoryGLCodePage({route}: EditCategoryPageProps) {
if (newGLCode !== glCode) {
Category.setPolicyCategoryGLCode(route.params.policyID, categoryName, newGLCode);
}
Navigation.goBack(ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName));
Navigation.goBack(
backTo
? ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName, backTo)
: ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName),
);
},
[categoryName, glCode, route.params.policyID],
);
Expand All @@ -57,7 +62,13 @@ function CategoryGLCodePage({route}: EditCategoryPageProps) {
>
<HeaderWithBackButton
title={translate('workspace.categories.glCode')}
onBackButtonPress={() => Navigation.goBack(ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName))}
onBackButtonPress={() =>
Navigation.goBack(
backTo
? ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName, backTo)
: ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName),
)
}
/>
<FormProvider
formID={ONYXKEYS.FORMS.WORKSPACE_CATEGORY_FORM}
Expand Down
15 changes: 13 additions & 2 deletions src/pages/workspace/categories/CategoryPayrollCodePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ function CategoryPayrollCodePage({route}: EditCategoryPageProps) {
const styles = useThemeStyles();
const {translate} = useLocalize();
const policyId = route.params.policyID ?? '-1';
const backTo = route.params.backTo;
const [policyCategories] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyId}`);

const categoryName = route.params.categoryName;
Expand All @@ -38,7 +39,11 @@ function CategoryPayrollCodePage({route}: EditCategoryPageProps) {
if (newPayrollCode !== payrollCode) {
Category.setPolicyCategoryPayrollCode(route.params.policyID, categoryName, newPayrollCode);
}
Navigation.goBack(ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName));
Navigation.goBack(
backTo
? ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName, backTo)
: ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName),
);
},
[categoryName, payrollCode, route.params.policyID],
);
Expand All @@ -57,7 +62,13 @@ function CategoryPayrollCodePage({route}: EditCategoryPageProps) {
>
<HeaderWithBackButton
title={translate('workspace.categories.payrollCode')}
onBackButtonPress={() => Navigation.goBack(ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName))}
onBackButtonPress={() =>
Navigation.goBack(
backTo
? ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName, backTo)
: ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, categoryName),
)
}
/>
<FormProvider
formID={ONYXKEYS.FORMS.WORKSPACE_CATEGORY_FORM}
Expand Down
24 changes: 12 additions & 12 deletions src/pages/workspace/categories/CategorySettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,7 @@ function CategorySettingsPage({
const areCommentsRequired = policyCategory?.areCommentsRequired ?? false;

const navigateBack = () => {
if (backTo) {
Navigation.goBack(ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(policyID, backTo));
return;
}
Navigation.goBack();
Navigation.goBack(backTo ? ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(policyID, backTo) : undefined);
};

useEffect(() => {
Expand Down Expand Up @@ -115,11 +111,7 @@ function CategorySettingsPage({
};

const navigateToEditCategory = () => {
if (backTo) {
Navigation.navigate(ROUTES.SETTINGS_CATEGORY_EDIT.getRoute(policyID, policyCategory.name, backTo));
return;
}
Navigation.navigate(ROUTES.WORKSPACE_CATEGORY_EDIT.getRoute(policyID, policyCategory.name));
Navigation.navigate(backTo ? ROUTES.SETTINGS_CATEGORY_EDIT.getRoute(policyID, policyCategory.name, backTo) : ROUTES.WORKSPACE_CATEGORY_EDIT.getRoute(policyID, policyCategory.name));
};

const deleteCategory = () => {
Expand Down Expand Up @@ -200,7 +192,11 @@ function CategorySettingsPage({
);
return;
}
Navigation.navigate(ROUTES.WORKSPACE_CATEGORY_GL_CODE.getRoute(policyID, policyCategory.name));
Navigation.navigate(
backTo
? ROUTES.SETTINGS_CATEGORY_GL_CODE.getRoute(policyID, policyCategory.name, backTo)
: ROUTES.WORKSPACE_CATEGORY_GL_CODE.getRoute(policyID, policyCategory.name),
);
}}
shouldShowRightIcon
/>
Expand All @@ -220,7 +216,11 @@ function CategorySettingsPage({
);
return;
}
Navigation.navigate(ROUTES.WORKSPACE_CATEGORY_PAYROLL_CODE.getRoute(policyID, policyCategory.name));
Navigation.navigate(
backTo
? ROUTES.SETTINGS_CATEGORY_PAYROLL_CODE.getRoute(policyID, policyCategory.name, backTo)
: ROUTES.WORKSPACE_CATEGORY_PAYROLL_CODE.getRoute(policyID, policyCategory.name),
);
}}
shouldShowRightIcon
/>
Expand Down
8 changes: 2 additions & 6 deletions src/pages/workspace/categories/CreateCategoryPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,7 @@ function CreateCategoryPage({route, policyCategories}: CreateCategoryPageProps)
const createCategory = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.WORKSPACE_CATEGORY_FORM>) => {
Category.createPolicyCategory(route.params.policyID, values.categoryName.trim());
if (backTo) {
Navigation.goBack(ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(route.params.policyID, backTo));
return;
}
Navigation.goBack();
Navigation.goBack(backTo ? ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(route.params.policyID, backTo) : undefined);
},
[backTo, route.params.policyID],
);
Expand All @@ -56,7 +52,7 @@ function CreateCategoryPage({route, policyCategories}: CreateCategoryPageProps)
>
<HeaderWithBackButton
title={translate('workspace.categories.addCategory')}
onBackButtonPress={() => (backTo ? Navigation.goBack(ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(route.params.policyID, backTo)) : Navigation.goBack())}
onBackButtonPress={() => Navigation.goBack(backTo ? ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(route.params.policyID, backTo) : undefined)}
/>
<CategoryForm
onSubmit={createCategory}
Expand Down
19 changes: 11 additions & 8 deletions src/pages/workspace/categories/EditCategoryPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,12 @@ function EditCategoryPage({route, policyCategories}: EditCategoryPageProps) {
if (currentCategoryName !== newCategoryName) {
Category.renamePolicyCategory(route.params.policyID, {oldName: currentCategoryName, newName: values.categoryName});
}
if (backTo) {
Navigation.goBack(ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName, backTo));
return;
}
Navigation.goBack();
Navigation.goBack(
backTo
? ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName, backTo)
: ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName),
);
return;
},
[backTo, currentCategoryName, route.params.categoryName, route.params.policyID],
);
Expand All @@ -78,9 +79,11 @@ function EditCategoryPage({route, policyCategories}: EditCategoryPageProps) {
<HeaderWithBackButton
title={translate('workspace.categories.editCategory')}
onBackButtonPress={() =>
backTo
? Navigation.goBack(ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName, backTo))
: Navigation.goBack(ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName))
Navigation.goBack(
backTo
? ROUTES.SETTINGS_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName, backTo)
: ROUTES.WORKSPACE_CATEGORY_SETTINGS.getRoute(route.params.policyID, route.params.categoryName),
)
}
/>
<CategoryForm
Expand Down
5 changes: 3 additions & 2 deletions src/pages/workspace/categories/ImportCategoriesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ type ImportCategoriesPageProps = StackScreenProps<SettingsNavigatorParamList, ty

function ImportCategoriesPage({route}: ImportCategoriesPageProps) {
const policyID = route.params.policyID;
const backTo = route.params.backTo;
const policy = usePolicy(policyID);
const hasAccountingConnections = PolicyUtils.hasAccountingConnections(policy);

Expand All @@ -21,8 +22,8 @@ function ImportCategoriesPage({route}: ImportCategoriesPageProps) {

return (
<ImportSpreedsheet
backTo={ROUTES.WORKSPACE_CATEGORIES.getRoute(policyID)}
goTo={ROUTES.WORKSPACE_CATEGORIES_IMPORTED.getRoute(policyID)}
backTo={backTo ? ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES.getRoute(policyID)}
goTo={backTo ? ROUTES.SETTINGS_CATEGORIES_IMPORTED.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES_IMPORTED.getRoute(policyID)}
/>
);
}
Expand Down
5 changes: 3 additions & 2 deletions src/pages/workspace/categories/ImportedCategoriesPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ function ImportedCategoriesPage({route}: ImportedCategoriesPageProps) {
const {containsHeader = true} = spreadsheet ?? {};
const [isValidationEnabled, setIsValidationEnabled] = useState(false);
const policyID = route.params.policyID;
const backTo = route.params.backTo;
const [policyCategories] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${policyID}`);
const policy = usePolicy(policyID);
const columnNames = generateColumnNames(spreadsheet?.data?.length ?? 0);
Expand Down Expand Up @@ -120,7 +121,7 @@ function ImportedCategoriesPage({route}: ImportedCategoriesPageProps) {
const closeImportPageAndModal = () => {
setIsImportingCategories(false);
closeImportPage();
Navigation.navigate(ROUTES.WORKSPACE_CATEGORIES.getRoute(policyID));
Navigation.navigate(backTo ? ROUTES.SETTINGS_CATEGORIES_ROOT.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES.getRoute(policyID));
};

return (
Expand All @@ -130,7 +131,7 @@ function ImportedCategoriesPage({route}: ImportedCategoriesPageProps) {
>
<HeaderWithBackButton
title={translate('workspace.categories.importCategories')}
onBackButtonPress={() => Navigation.goBack(ROUTES.WORKSPACE_CATEGORIES_IMPORT.getRoute(policyID))}
onBackButtonPress={() => Navigation.goBack(backTo ? ROUTES.SETTINGS_CATEGORIES_IMPORT.getRoute(policyID, backTo) : ROUTES.WORKSPACE_CATEGORIES_IMPORT.getRoute(policyID))}
/>
<ImportSpreadsheetColumns
spreadsheetColumns={spreadsheetColumns}
Expand Down
Loading

0 comments on commit 8694a58

Please sign in to comment.