Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
74e7d45
feat(bulk actions ui): add menu dropdown button
ArekChr Mar 5, 2024
3f6c8f5
feat(onyx): implement bulk delete categories
ArekChr Mar 5, 2024
dfae8bc
fix(onyx bulk delete): missing params type
ArekChr Mar 5, 2024
10b282b
feat: connect bulk actions with onyx & api
ArekChr Mar 5, 2024
bd2c8bf
feat: add red brick road pending action to categories menu item and c…
ArekChr Mar 5, 2024
34c64b1
refactor(types): remove PolicyForList, use ListItem type instead
ArekChr Mar 5, 2024
7713c28
feat: handle dismiss errors in categories list
ArekChr Mar 5, 2024
34b15a0
fix: prevent removing categories from list if pending action is delete
ArekChr Mar 5, 2024
c0b6b92
fix: disabled right element styles
ArekChr Mar 5, 2024
920ee83
refactor: optimize optimistic data setting & params as a json
ArekChr Mar 6, 2024
f0ec68a
fix: add pending action to list item
ArekChr Mar 6, 2024
fd18d44
refactor: remove preading value
ArekChr Mar 6, 2024
f697a58
Merge branch 'main' into feat/categories_bulk_actions
ArekChr Mar 6, 2024
14470d8
fix(icon): document for enabling and document slash for disabling cat…
ArekChr Mar 6, 2024
a429fa1
fix(update categories): add pending action update when updating categ…
ArekChr Mar 6, 2024
1b2c87e
fix(styles): 50% width for small screen width in button with dropdown
ArekChr Mar 6, 2024
790a0e6
fix: fix icon fill color on mobile platforms
ArekChr Mar 6, 2024
14c1221
refactor: remove usecallback got getHeaderButtons
ArekChr Mar 6, 2024
c26e2a7
fix: eslint issues
ArekChr Mar 6, 2024
d06f58e
fix: prevent selecting hidden pending removal categories
ArekChr Mar 6, 2024
05ee739
refactor(ts): remove generic from ButtonWithDropdownMenu
ArekChr Mar 6, 2024
9c1aeb6
refactor(onyx actions): use const as api command name instead of string
ArekChr Mar 6, 2024
3a7b40e
refactor(ts): move generic from map to useMemo
ArekChr Mar 6, 2024
70a96d5
fix: rename svg as per convention
ArekChr Mar 6, 2024
f42cfb4
Merge branch 'main' into feat/categories_bulk_actions
ArekChr Mar 6, 2024
93a7bfb
Merge branch 'main' into feat/categories_bulk_actions
ArekChr Mar 7, 2024
f57b893
fix: remove pendingAction from update category
ArekChr Mar 7, 2024
594f1e5
fix: iterate using categoryNames in failure data
ArekChr Mar 7, 2024
25f45f6
refactor: iterate using categoryNames in success data
ArekChr Mar 7, 2024
f4fbbe7
refactor: toggle categories
ArekChr Mar 7, 2024
ff3ad81
Merge branch 'main' into feat/categories_bulk_actions
ArekChr Mar 8, 2024
44b019c
fix(categories selection): include disable and enable options when se…
ArekChr Mar 8, 2024
fecbd84
Merge branch 'main' into feat/categories_bulk_actions
ArekChr Mar 11, 2024
4e6f244
fix: conflicts
ArekChr Mar 11, 2024
7329493
Merge branch 'main' into feat/categories_bulk_actions
ArekChr Mar 12, 2024
cbdfe08
fix: ts issues
ArekChr Mar 12, 2024
acacbb2
fix: conflicts - restore actions
ArekChr Mar 12, 2024
e760ff1
Merge branch 'main' into feat/categories_bulk_actions
ArekChr Mar 13, 2024
0770d27
fix: conflicts, export deleteWorkspaceCategories
ArekChr Mar 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions assets/images/document-slash.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1414,6 +1414,11 @@ const CONST = {
MAKE_MEMBER: 'makeMember',
MAKE_ADMIN: 'makeAdmin',
},
CATEGORIES_BULK_ACTION_TYPES: {
DELETE: 'delete',
DISABLE: 'disable',
ENABLE: 'enable',
},
DISTANCE_RATES_BULK_ACTION_TYPES: {
DELETE: 'delete',
DISABLE: 'disable',
Expand Down
6 changes: 5 additions & 1 deletion src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1752,6 +1752,7 @@ export default {
testTransactions: 'Test transactions',
issueAndManageCards: 'Issue and manage cards',
reconcileCards: 'Reconcile cards',
selected: ({selectedNumber}) => `${selectedNumber} selected`,
settlementFrequency: 'Settlement frequency',
deleteConfirmation: 'Are you sure you want to delete this workspace?',
unavailable: 'Unavailable workspace',
Expand All @@ -1766,14 +1767,17 @@ export default {
moreFeatures: 'More features',
requested: 'Requested',
distanceRates: 'Distance rates',
selected: ({selectedNumber}) => `${selectedNumber} selected`,
},
type: {
free: 'Free',
control: 'Control',
collect: 'Collect',
},
categories: {
deleteCategories: 'Delete categories',
disableCategories: 'Disable categories',
enableCategories: 'Enable categories',
deleteFailureMessage: 'An error occurred while deleting the category, please try again.',
categoryName: 'Category name',
requiresCategory: 'Members must categorize all spend',
enableCategory: 'Enable category',
Expand Down
6 changes: 5 additions & 1 deletion src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1776,6 +1776,7 @@ export default {
testTransactions: 'Transacciones de prueba',
issueAndManageCards: 'Emitir y gestionar tarjetas',
reconcileCards: 'Reconciliar tarjetas',
selected: ({selectedNumber}) => `${selectedNumber} seleccionados`,
settlementFrequency: 'Frecuencia de liquidación',
deleteConfirmation: '¿Estás seguro de que quieres eliminar este espacio de trabajo?',
unavailable: 'Espacio de trabajo no disponible',
Expand All @@ -1790,14 +1791,17 @@ export default {
moreFeatures: 'Más características',
requested: 'Solicitado',
distanceRates: 'Tasas de distancia',
selected: ({selectedNumber}) => `${selectedNumber} seleccionados`,
},
type: {
free: 'Gratis',
control: 'Control',
collect: 'Recolectar',
},
categories: {
deleteCategories: 'Eliminar categorías',
disableCategories: 'Desactivar categorías',
enableCategories: 'Activar categorías',
deleteFailureMessage: 'Se ha producido un error al intentar eliminar la categoría. Por favor, inténtalo más tarde.',
Comment thread
luacmartins marked this conversation as resolved.
categoryName: 'Nombre de la categoría',
requiresCategory: 'Los miembros deben categorizar todos los gastos',
enableCategory: 'Activar categoría',
Expand Down
10 changes: 10 additions & 0 deletions src/libs/API/parameters/DeleteWorkspaceCategoriesParams.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
type DeleteWorkspaceCategoriesParams = {
policyID: string;
/**
* A JSON-encoded string representing an array of category names to be deleted.
* Each element in the array is a string that specifies the name of a category.
*/
categories: string;
};

export default DeleteWorkspaceCategoriesParams;
1 change: 1 addition & 0 deletions src/libs/API/parameters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ export type {default as UpdateWorkspaceMembersRoleParams} from './UpdateWorkspac
export type {default as SetWorkspaceCategoriesEnabledParams} from './SetWorkspaceCategoriesEnabledParams';
export type {default as CreateWorkspaceCategoriesParams} from './CreateWorkspaceCategoriesParams';
export type {default as SetWorkspaceRequiresCategoryParams} from './SetWorkspaceRequiresCategoryParams';
export type {default as DeleteWorkspaceCategoriesParams} from './DeleteWorkspaceCategoriesParams';
export type {default as SetWorkspaceAutoReportingParams} from './SetWorkspaceAutoReportingParams';
export type {default as SetWorkspaceAutoReportingFrequencyParams} from './SetWorkspaceAutoReportingFrequencyParams';
export type {default as SetWorkspaceAutoReportingMonthlyOffsetParams} from './SetWorkspaceAutoReportingMonthlyOffsetParams';
Expand Down
2 changes: 2 additions & 0 deletions src/libs/API/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ const WRITE_COMMANDS = {
CREATE_WORKSPACE_CATEGORIES: 'CreateWorkspaceCategories',
CREATE_POLICY_TAG: 'CreatePolicyTag',
SET_WORKSPACE_REQUIRES_CATEGORY: 'SetWorkspaceRequiresCategory',
DELETE_WORKSPACE_CATEGORIES: 'DeleteWorkspaceCategories',
SET_POLICY_REQUIRES_TAG: 'SetPolicyRequiresTag',
RENAME_POLICY_TAG_LIST: 'RenamePolicyTaglist',
CREATE_TASK: 'CreateTask',
Expand Down Expand Up @@ -282,6 +283,7 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.SET_WORKSPACE_CATEGORIES_ENABLED]: Parameters.SetWorkspaceCategoriesEnabledParams;
[WRITE_COMMANDS.CREATE_WORKSPACE_CATEGORIES]: Parameters.CreateWorkspaceCategoriesParams;
[WRITE_COMMANDS.SET_WORKSPACE_REQUIRES_CATEGORY]: Parameters.SetWorkspaceRequiresCategoryParams;
[WRITE_COMMANDS.DELETE_WORKSPACE_CATEGORIES]: Parameters.DeleteWorkspaceCategoriesParams;
[WRITE_COMMANDS.SET_POLICY_REQUIRES_TAG]: Parameters.SetPolicyRequiresTag;
[WRITE_COMMANDS.RENAME_POLICY_TAG_LIST]: Parameters.RenamePolicyTaglist;
[WRITE_COMMANDS.CREATE_POLICY_TAG]: Parameters.CreatePolicyTagsParams;
Expand Down
10 changes: 9 additions & 1 deletion src/libs/PolicyUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import type {ValueOf} from 'type-fest';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type {PersonalDetailsList, Policy, PolicyMembers, PolicyTagList, PolicyTags} from '@src/types/onyx';
import type {PersonalDetailsList, Policy, PolicyCategories, PolicyMembers, PolicyTagList, PolicyTags} from '@src/types/onyx';
import type {EmptyObject} from '@src/types/utils/EmptyObject';
import {isEmptyObject} from '@src/types/utils/EmptyObject';
import Navigation from './Navigation/Navigation';
Expand All @@ -30,6 +30,13 @@ function hasPolicyMemberError(policyMembers: OnyxEntry<PolicyMembers>): boolean
return Object.values(policyMembers ?? {}).some((member) => Object.keys(member?.errors ?? {}).length > 0);
}

/**
* Check if the policy has any errors within the categories.
*/
function hasPolicyCategoriesError(policyCategories: OnyxEntry<PolicyCategories>): boolean {
return Object.keys(policyCategories ?? {}).some((categoryName) => Object.keys(policyCategories?.[categoryName]?.errors ?? {}).length > 0);
}

/**
* Check if the policy has any error fields.
*/
Expand Down Expand Up @@ -295,6 +302,7 @@ export {
getPathWithoutPolicyID,
getPolicyMembersByIdWithoutCurrentUser,
goBackFromInvalidPolicy,
hasPolicyCategoriesError,
};

export type {MemberEmailsToAccountIDs};
Loading