Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
d9e986d
feat: policy distance rate edit
MrMuzyk Mar 13, 2024
6f95e0f
Merge branch 'feat/policy-distance-rates-settings' of github.com:MrMu…
MrMuzyk Mar 13, 2024
c7bcfa8
fix: after rebase
MrMuzyk Mar 13, 2024
4ac4535
feat: api methods
MrMuzyk Mar 13, 2024
b1f48c9
fix: onyx methods
MrMuzyk Mar 13, 2024
811390f
Merge branch 'feat/policy-distance-rates-settings' of github.com:MrMu…
MrMuzyk Mar 14, 2024
73cfcbd
Merge branch 'feat/policy-distance-rates-settings' of github.com:MrMu…
MrMuzyk Mar 15, 2024
5e97f46
feat: translations and modal
MrMuzyk Mar 15, 2024
bbe1dd7
fix: delete
MrMuzyk Mar 15, 2024
e949ed7
Merge branch 'feat/policy-distance-rates-settings' of github.com:MrMu…
MrMuzyk Mar 18, 2024
1e054e6
fix: oops modal display
MrMuzyk Mar 18, 2024
d5301c4
Merge branch 'feat/policy-distance-rates-settings' of github.com:MrMu…
MrMuzyk Mar 18, 2024
6ad2700
Merge branch 'main' of https://github.com/Expensify/App into feat/pol…
MrMuzyk Mar 20, 2024
c80716e
feat: api changes/offline and error handling
MrMuzyk Mar 20, 2024
4f8d099
Merge branch 'main' of https://github.com/Expensify/App into feat/pol…
MrMuzyk Mar 20, 2024
d3e3b50
feat: added feature flag wrapper after rebase
MrMuzyk Mar 20, 2024
1204cdd
fix: cleanup array before sending and fix deselecting category
MrMuzyk Mar 20, 2024
0840062
Merge branch 'main' of https://github.com/Expensify/App into feat/pol…
MrMuzyk Mar 20, 2024
0b5e303
fix: display main and subcategory fully
MrMuzyk Mar 20, 2024
bf2ea7e
fix: prettier fix
MrMuzyk Mar 20, 2024
24baf59
Merge branch 'main' of https://github.com/Expensify/App into feat/pol…
MrMuzyk Mar 21, 2024
de11d8c
fix: cr fixes
MrMuzyk Mar 21, 2024
12c7a0c
fix: select all after delete
MrMuzyk Mar 21, 2024
b21be99
Merge branch 'main' of https://github.com/Expensify/App into feat/pol…
MrMuzyk Mar 21, 2024
109dbdd
feat: separate route for edit form
MrMuzyk Mar 21, 2024
90f763b
fix: remove rate modal component
MrMuzyk Mar 21, 2024
21db7e7
Merge branch 'main' of https://github.com/Expensify/App into feat/pol…
MrMuzyk Mar 21, 2024
d35e014
fix: ts error fix
MrMuzyk Mar 21, 2024
a86d20a
fix: route typo
MrMuzyk Mar 21, 2024
95a6736
fix: routes typo
MrMuzyk Mar 21, 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
3 changes: 3 additions & 0 deletions src/ONYXKEYS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,8 @@ const ONYXKEYS = {
WORKSPACE_TAX_CUSTOM_NAME_DRAFT: 'workspaceTaxCustomNameDraft',
POLICY_CREATE_DISTANCE_RATE_FORM: 'policyCreateDistanceRateForm',
POLICY_CREATE_DISTANCE_RATE_FORM_DRAFT: 'policyCreateDistanceRateFormDraft',
POLICY_DISTANCE_RATE_EDIT_FORM: 'policyDistanceRateEditForm',
POLICY_DISTANCE_RATE_EDIT_FORM_DRAFT: 'policyDistanceRateEditFormDraft',
CLOSE_ACCOUNT_FORM: 'closeAccount',
CLOSE_ACCOUNT_FORM_DRAFT: 'closeAccountDraft',
PROFILE_SETTINGS_FORM: 'profileSettingsForm',
Expand Down Expand Up @@ -482,6 +484,7 @@ type OnyxFormValuesMapping = {
[ONYXKEYS.FORMS.POLICY_TAG_NAME_FORM]: FormTypes.PolicyTagNameForm;
[ONYXKEYS.FORMS.WORKSPACE_NEW_TAX_FORM]: FormTypes.WorkspaceNewTaxForm;
[ONYXKEYS.FORMS.POLICY_CREATE_DISTANCE_RATE_FORM]: FormTypes.PolicyCreateDistanceRateForm;
[ONYXKEYS.FORMS.POLICY_DISTANCE_RATE_EDIT_FORM]: FormTypes.PolicyDistanceRateEditForm;
[ONYXKEYS.FORMS.WORKSPACE_TAX_NAME_FORM]: FormTypes.WorkspaceTaxNameForm;
[ONYXKEYS.FORMS.WORKSPACE_TAX_VALUE_FORM]: FormTypes.WorkspaceTaxValueForm;
};
Expand Down
12 changes: 10 additions & 2 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -637,8 +637,16 @@ const ROUTES = {
getRoute: (policyID: string) => `settings/workspaces/${policyID}/distance-rates/new` as const,
},
WORKSPACE_DISTANCE_RATES_SETTINGS: {
route: 'settings/workspace/:policyID/distance-rates/settings',
getRoute: (policyID: string) => `settings/workspace/${policyID}/distance-rates/settings` as const,
route: 'settings/workspaces/:policyID/distance-rates/settings',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/distance-rates/settings` as const,
},
WORKSPACE_DISTANCE_RATE_DETAILS: {
route: 'settings/workspaces/:policyID/distance-rates/:rateID',
getRoute: (policyID: string, rateID: string) => `settings/workspaces/${policyID}/distance-rates/${rateID}` as const,
},
WORKSPACE_DISTANCE_RATE_EDIT: {
route: 'settings/workspaces/:policyID/distance-rates/:rateID/edit',
getRoute: (policyID: string, rateID: string) => `settings/workspaces/${policyID}/distance-rates/${rateID}/edit` as const,
},
// Referral program promotion
REFERRAL_DETAILS_MODAL: {
Expand Down
2 changes: 2 additions & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,8 @@ const SCREENS = {
DISTANCE_RATES: 'Distance_Rates',
CREATE_DISTANCE_RATE: 'Create_Distance_Rate',
DISTANCE_RATES_SETTINGS: 'Distance_Rates_Settings',
DISTANCE_RATE_DETAILS: 'Distance_Rate_Details',
DISTANCE_RATE_EDIT: 'Distance_Rate_Edit',
},

EDIT_REQUEST: {
Expand Down
3 changes: 3 additions & 0 deletions src/components/SelectionList/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ type ListItem = {

/** Whether to wrap long text up to 2 lines */
isMultilineSupported?: boolean;

/** The search value from the selection list */
searchText?: string | null;
};

type ListItemProps = CommonListItemProps<ListItem> & {
Expand Down
11 changes: 6 additions & 5 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import type {
DeleteActionParams,
DeleteConfirmationParams,
DidSplitAmountMessageParams,
DistanceRateOperationsParams,
EditActionParams,
ElectronicFundsParams,
EnterMagicCodeParams,
Expand Down Expand Up @@ -2036,17 +2037,17 @@ export default {
centrallyManage: 'Centrally manage rates, choose to track in miles or kilometers, and set a default category.',
rate: 'Rate',
addRate: 'Add rate',
deleteRate: 'Delete rate',
deleteRates: 'Delete rates',
deleteRates: ({count}: DistanceRateOperationsParams) => `Delete ${Str.pluralize('rate', 'rates', count)}`,
enableRates: ({count}: DistanceRateOperationsParams) => `Enable ${Str.pluralize('rate', 'rates', count)}`,
disableRates: ({count}: DistanceRateOperationsParams) => `Disable ${Str.pluralize('rate', 'rates', count)}`,
enableRate: 'Enable rate',
disableRate: 'Disable rate',
disableRates: 'Disable rates',
enableRates: 'Enable rates',
status: 'Status',
enabled: 'Enabled',
disabled: 'Disabled',
unit: 'Unit',
defaultCategory: 'Default category',
deleteDistanceRate: 'Delete distance rate',
areYouSureDelete: ({count}: DistanceRateOperationsParams) => `Are you sure you want to delete ${Str.pluralize('this rate', 'these rates', count)}?`,
},
editor: {
descriptionInputLabel: 'Description',
Expand Down
11 changes: 6 additions & 5 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import type {
DeleteActionParams,
DeleteConfirmationParams,
DidSplitAmountMessageParams,
DistanceRateOperationsParams,
EditActionParams,
ElectronicFundsParams,
EnglishTranslation,
Expand Down Expand Up @@ -2064,17 +2065,17 @@ export default {
centrallyManage: 'Gestiona centralizadamente las tasas, elige si contabilizar en millas o kilómetros, y define una categoría por defecto',
rate: 'Tasa',
addRate: 'Agregar tasa',
deleteRate: 'Eliminar tasa',
deleteRates: 'Eliminar tasas',
deleteRates: ({count}: DistanceRateOperationsParams) => `Eliminar ${Str.pluralize('tasa', 'tasas', count)}`,
enableRates: ({count}: DistanceRateOperationsParams) => `Activar ${Str.pluralize('tasa', 'tasas', count)}`,
disableRates: ({count}: DistanceRateOperationsParams) => `Desactivar ${Str.pluralize('tasa', 'tasas', count)}`,
enableRate: 'Activar tasa',
disableRate: 'Desactivar tasa',
disableRates: 'Desactivar tasas',
enableRates: 'Activar tasas',
status: 'Estado',
enabled: 'Activada',
disabled: 'Desactivada',
unit: 'Unidad',
defaultCategory: 'Categoría predeterminada',
deleteDistanceRate: 'Eliminar tasa de distancia',
areYouSureDelete: ({count}: DistanceRateOperationsParams) => `¿Estás seguro de que quieres eliminar ${Str.pluralize('esta tasa', 'estas tasas', count)}?`,
},
editor: {
nameInputLabel: 'Nombre',
Expand Down
3 changes: 3 additions & 0 deletions src/languages/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,8 @@ type LogSizeParams = {size: number};

type HeldRequestParams = {comment: string};

type DistanceRateOperationsParams = {count: number};

export type {
AdminCanceledRequestParams,
ApprovedAmountParams,
Expand All @@ -313,6 +315,7 @@ export type {
DeleteActionParams,
DeleteConfirmationParams,
DidSplitAmountMessageParams,
DistanceRateOperationsParams,
EditActionParams,
ElectronicFundsParams,
EnglishTranslation,
Expand Down
7 changes: 7 additions & 0 deletions src/libs/API/parameters/DeletePolicyDistanceRatesParams.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
type DeletePolicyDistanceRatesParams = {
policyID: string;
customUnitID: string;
customUnitRateID: string[];
};

export default DeletePolicyDistanceRatesParams;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
type SetPolicyDistanceRatesEnabledParams = {
policyID: string;
customUnitID: string;
customUnitRateArray: string;
};

export default SetPolicyDistanceRatesEnabledParams;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
type UpdatePolicyDistanceRateValueParams = {
policyID: string;
customUnitID: string;
customUnitRateArray: string;
};

export default UpdatePolicyDistanceRateValueParams;
3 changes: 3 additions & 0 deletions src/libs/API/parameters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@ export type {default as OpenPolicyMoreFeaturesPageParams} from './OpenPolicyMore
export type {default as CreatePolicyDistanceRateParams} from './CreatePolicyDistanceRateParams';
export type {default as SetPolicyDistanceRatesUnitParams} from './SetPolicyDistanceRatesUnitParams';
export type {default as SetPolicyDistanceRatesDefaultCategoryParams} from './SetPolicyDistanceRatesDefaultCategoryParams';
export type {default as UpdatePolicyDistanceRateValueParams} from './UpdatePolicyDistanceRateValueParams';
export type {default as SetPolicyDistanceRatesEnabledParams} from './SetPolicyDistanceRatesEnabledParams';
export type {default as DeletePolicyDistanceRatesParams} from './DeletePolicyDistanceRatesParams';
export type {default as CreatePolicyTagsParams} from './CreatePolicyTagsParams';
export type {default as SetPolicyTaxesEnabledParams} from './SetPolicyTaxesEnabledParams';
export type {default as DeletePolicyTaxesParams} from './DeletePolicyTaxesParams';
Expand Down
6 changes: 6 additions & 0 deletions src/libs/API/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,9 @@ const WRITE_COMMANDS = {
CREATE_POLICY_DISTANCE_RATE: 'CreatePolicyDistanceRate',
SET_POLICY_DISTANCE_RATES_UNIT: 'SetPolicyDistanceRatesUnit',
SET_POLICY_DISTANCE_RATES_DEFAULT_CATEGORY: 'SetPolicyDistanceRatesDefaultCategory',
UPDATE_POLICY_DISTANCE_RATE_VALUE: 'UpdatePolicyDistanceRateValue',
SET_POLICY_DISTANCE_RATES_ENABLED: 'SetPolicyDistanceRatesEnabled',
DELETE_POLICY_DISTANCE_RATES: 'DeletePolicyDistanceRates',
} as const;

type WriteCommand = ValueOf<typeof WRITE_COMMANDS>;
Expand Down Expand Up @@ -378,6 +381,9 @@ type WriteCommandParameters = {
[WRITE_COMMANDS.RENAME_POLICY_TAX]: Parameters.RenamePolicyTaxParams;
[WRITE_COMMANDS.SET_POLICY_DISTANCE_RATES_UNIT]: Parameters.SetPolicyDistanceRatesUnitParams;
[WRITE_COMMANDS.SET_POLICY_DISTANCE_RATES_DEFAULT_CATEGORY]: Parameters.SetPolicyDistanceRatesDefaultCategoryParams;
[WRITE_COMMANDS.UPDATE_POLICY_DISTANCE_RATE_VALUE]: Parameters.UpdatePolicyDistanceRateValueParams;
[WRITE_COMMANDS.SET_POLICY_DISTANCE_RATES_ENABLED]: Parameters.SetPolicyDistanceRatesEnabledParams;
[WRITE_COMMANDS.DELETE_POLICY_DISTANCE_RATES]: Parameters.DeletePolicyDistanceRatesParams;
};

const READ_COMMANDS = {
Expand Down
2 changes: 2 additions & 0 deletions src/libs/Navigation/AppNavigator/ModalStackNavigators.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
[SCREENS.WORKSPACE.CATEGORY_EDIT]: () => require('../../../pages/workspace/categories/EditCategoryPage').default as React.ComponentType,
[SCREENS.WORKSPACE.CREATE_DISTANCE_RATE]: () => require('../../../pages/workspace/distanceRates/CreateDistanceRatePage').default as React.ComponentType,
[SCREENS.WORKSPACE.DISTANCE_RATES_SETTINGS]: () => require('../../../pages/workspace/distanceRates/PolicyDistanceRatesSettingsPage').default as React.ComponentType,
[SCREENS.WORKSPACE.DISTANCE_RATE_DETAILS]: () => require('../../../pages/workspace/distanceRates/PolicyDistanceRateDetailsPage').default as React.ComponentType,
[SCREENS.WORKSPACE.DISTANCE_RATE_EDIT]: () => require('../../../pages/workspace/distanceRates/PolicyDistanceRateEditPage').default as React.ComponentType,
[SCREENS.WORKSPACE.TAGS_SETTINGS]: () => require('../../../pages/workspace/tags/WorkspaceTagsSettingsPage').default as React.ComponentType,
[SCREENS.WORKSPACE.TAG_SETTINGS]: () => require('../../../pages/workspace/tags/TagSettingsPage').default as React.ComponentType,
[SCREENS.WORKSPACE.TAGS_EDIT]: () => require('../../../pages/workspace/tags/WorkspaceEditTagsPage').default as React.ComponentType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,12 @@ const FULL_SCREEN_TO_RHP_MAPPING: Partial<Record<FullScreenName, string[]>> = {
],
[SCREENS.WORKSPACE.TAGS]: [SCREENS.WORKSPACE.TAGS_SETTINGS, SCREENS.WORKSPACE.TAGS_EDIT, SCREENS.WORKSPACE.TAG_CREATE, SCREENS.WORKSPACE.TAG_SETTINGS, SCREENS.WORKSPACE.TAG_EDIT],
[SCREENS.WORKSPACE.CATEGORIES]: [SCREENS.WORKSPACE.CATEGORY_CREATE, SCREENS.WORKSPACE.CATEGORY_SETTINGS, SCREENS.WORKSPACE.CATEGORIES_SETTINGS, SCREENS.WORKSPACE.CATEGORY_EDIT],
[SCREENS.WORKSPACE.DISTANCE_RATES]: [SCREENS.WORKSPACE.CREATE_DISTANCE_RATE, SCREENS.WORKSPACE.DISTANCE_RATES_SETTINGS],
[SCREENS.WORKSPACE.DISTANCE_RATES]: [
SCREENS.WORKSPACE.CREATE_DISTANCE_RATE,
SCREENS.WORKSPACE.DISTANCE_RATES_SETTINGS,
SCREENS.WORKSPACE.DISTANCE_RATE_EDIT,
SCREENS.WORKSPACE.DISTANCE_RATE_DETAILS,
],
};

export default FULL_SCREEN_TO_RHP_MAPPING;
6 changes: 6 additions & 0 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,12 @@ const config: LinkingOptions<RootStackParamList>['config'] = {
[SCREENS.WORKSPACE.DISTANCE_RATES_SETTINGS]: {
path: ROUTES.WORKSPACE_DISTANCE_RATES_SETTINGS.route,
},
[SCREENS.WORKSPACE.DISTANCE_RATE_DETAILS]: {
path: ROUTES.WORKSPACE_DISTANCE_RATE_DETAILS.route,
},
[SCREENS.WORKSPACE.DISTANCE_RATE_EDIT]: {
path: ROUTES.WORKSPACE_DISTANCE_RATE_EDIT.route,
},
[SCREENS.WORKSPACE.TAGS_SETTINGS]: {
path: ROUTES.WORKSPACE_TAGS_SETTINGS.route,
},
Expand Down
8 changes: 8 additions & 0 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,14 @@ type SettingsNavigatorParamList = {
[SCREENS.WORKSPACE.TAG_CREATE]: {
policyID: string;
};
[SCREENS.WORKSPACE.DISTANCE_RATE_DETAILS]: {
policyID: string;
rateID: string;
};
[SCREENS.WORKSPACE.DISTANCE_RATE_EDIT]: {
policyID: string;
rateID: string;
};
[SCREENS.WORKSPACE.TAGS_SETTINGS]: {
policyID: string;
};
Expand Down
2 changes: 1 addition & 1 deletion src/libs/PolicyDistanceRatesUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import getPermittedDecimalSeparator from './getPermittedDecimalSeparator';
import * as MoneyRequestUtils from './MoneyRequestUtils';
import * as NumberUtils from './NumberUtils';

type RateValueForm = typeof ONYXKEYS.FORMS.WORKSPACE_RATE_AND_UNIT_FORM | typeof ONYXKEYS.FORMS.POLICY_CREATE_DISTANCE_RATE_FORM;
type RateValueForm = typeof ONYXKEYS.FORMS.WORKSPACE_RATE_AND_UNIT_FORM | typeof ONYXKEYS.FORMS.POLICY_CREATE_DISTANCE_RATE_FORM | typeof ONYXKEYS.FORMS.POLICY_DISTANCE_RATE_EDIT_FORM;

function validateRateValue(values: FormOnyxValues<RateValueForm>, currency: string, toLocaleDigit: (arg: string) => string): FormInputErrors<RateValueForm> {
const errors: FormInputErrors<RateValueForm> = {};
Expand Down
Loading