Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement the policy report field edit flow #44730

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
56b504f
create bare NamePage
rezkiy37 Jul 2, 2024
e943bf6
create bare TypePage
rezkiy37 Jul 2, 2024
dd40132
create bare InitialValuePage
rezkiy37 Jul 2, 2024
af0cec5
create EditReportFieldPage
rezkiy37 Jul 2, 2024
cddeaf9
connect screens to navigation
rezkiy37 Jul 2, 2024
7631cca
create bare setters
rezkiy37 Jul 2, 2024
143964f
remove name and type editing pages
rezkiy37 Jul 2, 2024
ce74ea8
use reportFieldID
rezkiy37 Jul 2, 2024
56a31ea
Merge branch 'main' of https://github.com/rezkiy37/Expensify into fea…
rezkiy37 Jul 3, 2024
71a92cd
Merge branch 'feature/43684-report-fields-creating-flow-4' of https:/…
rezkiy37 Jul 3, 2024
7c95c6d
restrict initial value fore date type
rezkiy37 Jul 3, 2024
ab2b1b0
create InitialListValuePicker
rezkiy37 Jul 3, 2024
1d60889
add route to type
rezkiy37 Jul 3, 2024
861bd0c
convert ReportFieldsInitialListValuePicker as a input picker
rezkiy37 Jul 3, 2024
cd47a6e
integrate InitialValuePage
rezkiy37 Jul 3, 2024
75dc491
integrate initial value state
rezkiy37 Jul 3, 2024
9c96dce
improve initial value form submitting
rezkiy37 Jul 3, 2024
694414a
connect reportField values of policy
rezkiy37 Jul 3, 2024
44eaf49
integrate values based on props
rezkiy37 Jul 3, 2024
3500726
Merge branch 'feature/43684-report-fields-creating-flow-4' of https:/…
rezkiy37 Jul 3, 2024
23748f1
Merge branch 'main' of https://github.com/rezkiy37/Expensify into fea…
rezkiy37 Jul 3, 2024
26b8885
rename create report field page
rezkiy37 Jul 3, 2024
b942422
Merge branch 'main' of https://github.com/rezkiy37/Expensify into fea…
rezkiy37 Jul 4, 2024
2a97b7d
fix values getting
rezkiy37 Jul 4, 2024
6562d40
rename initial value page
rezkiy37 Jul 4, 2024
a3e9e98
rename value settings page
rezkiy37 Jul 4, 2024
c6a0795
rename report field edit page
rezkiy37 Jul 4, 2024
980bc8e
create bare report field updates
rezkiy37 Jul 4, 2024
8841b35
create tests for updateReportFieldInitialValue
rezkiy37 Jul 4, 2024
111c4ee
create tests for updateReportFieldListValueEnabled
rezkiy37 Jul 4, 2024
bbae275
integrate updateReportFieldInitialValue and updateReportFieldListValu…
rezkiy37 Jul 4, 2024
1240918
improve tests
rezkiy37 Jul 4, 2024
84284fd
integrate initial value updating
rezkiy37 Jul 4, 2024
46a1a65
integrate list value enabling
rezkiy37 Jul 4, 2024
a34a928
add correct failure data
rezkiy37 Jul 4, 2024
b9a0da0
improve updateReportFieldListValueEnabled to handle batch update
rezkiy37 Jul 4, 2024
05f8642
integrate batched updates
rezkiy37 Jul 4, 2024
430d092
integrate draft add list value
rezkiy37 Jul 4, 2024
9df8869
integrate addReportFieldListValue
rezkiy37 Jul 4, 2024
029dded
prettify tests
rezkiy37 Jul 4, 2024
a3f1b1f
Merge branch 'main' of https://github.com/rezkiy37/Expensify into fea…
rezkiy37 Jul 5, 2024
ee455fa
memorise reportFieldsSections
rezkiy37 Jul 5, 2024
48c185c
integrate values list removing
rezkiy37 Jul 5, 2024
acf5dd0
use update pending action for values list
rezkiy37 Jul 5, 2024
aef7cb5
clarify routes
rezkiy37 Jul 5, 2024
b10ad13
add js doc
rezkiy37 Jul 5, 2024
c3bfe81
Merge branch 'feat-43686-report-fields-delete-flow' of https://github…
rezkiy37 Jul 5, 2024
2655a14
fix ref error
rezkiy37 Jul 5, 2024
0380655
Merge branch 'main' of https://github.com/rezkiy37/Expensify into fea…
rezkiy37 Jul 8, 2024
773706c
clarify route
rezkiy37 Jul 8, 2024
abf31ce
Revert "clarify route"
rezkiy37 Jul 8, 2024
69e9f79
fix list key
rezkiy37 Jul 8, 2024
72ec86e
fix scroll view nesting
rezkiy37 Jul 8, 2024
a09e692
mark value as not required property of a report field
rezkiy37 Jul 8, 2024
b844f08
fix and improve pendingAction setting
rezkiy37 Jul 8, 2024
9ca2958
not capitalize
rezkiy37 Jul 8, 2024
0376879
revert form props for ReportFieldsInitialListValuePicker
rezkiy37 Jul 8, 2024
c01d2a4
move ReportFieldsInitialListValuePicker
rezkiy37 Jul 8, 2024
68610ed
remove ref from ReportFieldsInitialListValuePicker
rezkiy37 Jul 8, 2024
ac9c1a8
add js doc
rezkiy37 Jul 8, 2024
001061f
refactor ReportFieldTest
rezkiy37 Jul 8, 2024
b18736a
tweak comment
rezkiy37 Jul 9, 2024
e724077
fix type usage
rezkiy37 Jul 9, 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
6 changes: 3 additions & 3 deletions src/ONYXKEYS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -460,8 +460,8 @@ const ONYXKEYS = {
WORKSPACE_RATE_AND_UNIT_FORM_DRAFT: 'workspaceRateAndUnitFormDraft',
WORKSPACE_TAX_CUSTOM_NAME: 'workspaceTaxCustomName',
WORKSPACE_TAX_CUSTOM_NAME_DRAFT: 'workspaceTaxCustomNameDraft',
WORKSPACE_REPORT_FIELDS_FORM: 'workspaceReportFieldsForm',
WORKSPACE_REPORT_FIELDS_FORM_DRAFT: 'workspaceReportFieldsFormDraft',
WORKSPACE_REPORT_FIELDS_FORM: 'workspaceReportFieldForm',
WORKSPACE_REPORT_FIELDS_FORM_DRAFT: 'workspaceReportFieldFormDraft',
POLICY_CREATE_DISTANCE_RATE_FORM: 'policyCreateDistanceRateForm',
POLICY_CREATE_DISTANCE_RATE_FORM_DRAFT: 'policyCreateDistanceRateFormDraft',
POLICY_DISTANCE_RATE_EDIT_FORM: 'policyDistanceRateEditForm',
Expand Down Expand Up @@ -574,7 +574,7 @@ type OnyxFormValuesMapping = {
[ONYXKEYS.FORMS.WORKSPACE_TAG_FORM]: FormTypes.WorkspaceTagForm;
[ONYXKEYS.FORMS.WORKSPACE_RATE_AND_UNIT_FORM]: FormTypes.WorkspaceRateAndUnitForm;
[ONYXKEYS.FORMS.WORKSPACE_TAX_CUSTOM_NAME]: FormTypes.WorkspaceTaxCustomName;
[ONYXKEYS.FORMS.WORKSPACE_REPORT_FIELDS_FORM]: FormTypes.WorkspaceReportFieldsForm;
[ONYXKEYS.FORMS.WORKSPACE_REPORT_FIELDS_FORM]: FormTypes.WorkspaceReportFieldForm;
[ONYXKEYS.FORMS.CLOSE_ACCOUNT_FORM]: FormTypes.CloseAccountForm;
[ONYXKEYS.FORMS.PROFILE_SETTINGS_FORM]: FormTypes.ProfileSettingsForm;
[ONYXKEYS.FORMS.DISPLAY_NAME_FORM]: FormTypes.DisplayNameForm;
Expand Down
29 changes: 17 additions & 12 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -787,29 +787,34 @@ const ROUTES = {
route: 'settings/workspaces/:policyID/reportFields',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/reportFields` as const,
},
WORKSPACE_REPORT_FIELD_SETTINGS: {
route: 'settings/workspaces/:policyID/reportField/:reportFieldKey',
getRoute: (policyID: string, reportFieldKey: string) => `settings/workspaces/${policyID}/reportField/${encodeURIComponent(reportFieldKey)}` as const,
},
WORKSPACE_CREATE_REPORT_FIELD: {
route: 'settings/workspaces/:policyID/reportFields/new',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/reportFields/new` as const,
},
WORKSPACE_REPORT_FIELD_SETTINGS: {
route: 'settings/workspaces/:policyID/reportField/:reportFieldID/edit',
getRoute: (policyID: string, reportFieldID: string) => `settings/workspaces/${policyID}/reportField/${encodeURIComponent(reportFieldID)}/edit` as const,
},
WORKSPACE_REPORT_FIELD_LIST_VALUES: {
route: 'settings/workspaces/:policyID/reportFields/new/listValues',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/reportFields/new/listValues` as const,
route: 'settings/workspaces/:policyID/reportField/listValues/:reportFieldID?',
getRoute: (policyID: string, reportFieldID?: string) => `settings/workspaces/${policyID}/reportField/listValues/${encodeURIComponent(reportFieldID ?? '')}` as const,
},
WORKSPACE_REPORT_FIELD_ADD_VALUE: {
route: 'settings/workspaces/:policyID/reportFields/new/addValue',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/reportFields/new/addValue` as const,
route: 'settings/workspaces/:policyID/reportField/addValue/:reportFieldID?',
getRoute: (policyID: string, reportFieldID?: string) => `settings/workspaces/${policyID}/reportField/addValue/${encodeURIComponent(reportFieldID ?? '')}` as const,
},
WORKSPACE_REPORT_FIELD_VALUE_SETTINGS: {
route: 'settings/workspaces/:policyID/reportFields/new/:valueIndex',
getRoute: (policyID: string, valueIndex: number) => `settings/workspaces/${policyID}/reportFields/new/${valueIndex}` as const,
route: 'settings/workspaces/:policyID/reportField/:valueIndex/:reportFieldID?',
getRoute: (policyID: string, valueIndex: number, reportFieldID?: string) =>
`settings/workspaces/${policyID}/reportField/${valueIndex}/${encodeURIComponent(reportFieldID ?? '')}` as const,
},
WORKSPACE_REPORT_FIELD_EDIT_VALUE: {
route: 'settings/workspaces/:policyID/reportFields/new/:valueIndex/edit',
getRoute: (policyID: string, valueIndex: number) => `settings/workspaces/${policyID}/reportFields/new/${valueIndex}/edit` as const,
route: 'settings/workspaces/:policyID/reportField/new/:valueIndex/edit',
getRoute: (policyID: string, valueIndex: number) => `settings/workspaces/${policyID}/reportField/new/${valueIndex}/edit` as const,
},
WORKSPACE_EDIT_REPORT_FIELD_INITIAL_VALUE: {
route: 'settings/workspaces/:policyID/reportField/:reportFieldID/edit/initialValue',
getRoute: (policyID: string, reportFieldID: string) => `settings/workspaces/${policyID}/reportField/${encodeURIComponent(reportFieldID)}/edit/initialValue` as const,
},
WORKSPACE_EXPENSIFY_CARD: {
route: 'settings/workspaces/:policyID/expensify-card',
Expand Down
1 change: 1 addition & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,7 @@ const SCREENS = {
REPORT_FIELDS_ADD_VALUE: 'Workspace_ReportFields_AddValue',
REPORT_FIELDS_VALUE_SETTINGS: 'Workspace_ReportFields_ValueSettings',
REPORT_FIELDS_EDIT_VALUE: 'Workspace_ReportFields_EditValue',
REPORT_FIELDS_EDIT_INITIAL_VALUE: 'Workspace_ReportFields_EditInitialValue',
TAX_EDIT: 'Workspace_Tax_Edit',
TAX_NAME: 'Workspace_Tax_Name',
TAX_VALUE: 'Workspace_Tax_Value',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
type CreateWorkspaceReportFieldListValueParams = {
policyID: string;
/**
* Stringified JSON object with type of following structure:
* Array<string>
*/
reportFields: string;
};

export default CreateWorkspaceReportFieldListValueParams;
rezkiy37 marked this conversation as resolved.
Show resolved Hide resolved
4 changes: 4 additions & 0 deletions src/libs/API/parameters/CreateWorkspaceReportFieldParams.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
type CreateWorkspaceReportFieldParams = {
policyID: string;
/**
* Stringified JSON object with type of following structure:
* Array<string>
*/
reportFields: string;
};

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
type EnableWorkspaceReportFieldListValueParams = {
policyID: string;
/**
* Stringified JSON object with type of following structure:
* Array<string>
*/
reportFields: string;
};

export default EnableWorkspaceReportFieldListValueParams;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
type RemoveWorkspaceReportFieldListValueParams = {
policyID: string;
/**
* Stringified JSON object with type of following structure:
* Array<string>
*/
reportFields: string;
};

export default RemoveWorkspaceReportFieldListValueParams;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
type UpdateWorkspaceReportFieldInitialValueParams = {
policyID: string;
/**
* Stringified JSON object with type of following structure:
* Array<string>
*/
reportFields: string;
};

export default UpdateWorkspaceReportFieldInitialValueParams;
4 changes: 4 additions & 0 deletions src/libs/API/parameters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,10 @@ export type {default as UpdateNetSuiteSubsidiaryParams} from './UpdateNetSuiteSu
export type {default as PolicyReportFieldsReplace} from './PolicyReportFieldsReplace';
export type {default as ConnectPolicyToNetSuiteParams} from './ConnectPolicyToNetSuiteParams';
export type {default as CreateWorkspaceReportFieldParams} from './CreateWorkspaceReportFieldParams';
export type {default as UpdateWorkspaceReportFieldInitialValueParams} from './UpdateWorkspaceReportFieldInitialValueParams';
export type {default as EnableWorkspaceReportFieldListValueParams} from './EnableWorkspaceReportFieldListValueParams';
export type {default as CreateWorkspaceReportFieldListValueParams} from './CreateWorkspaceReportFieldListValueParams';
export type {default as RemoveWorkspaceReportFieldListValueParams} from './RemoveWorkspaceReportFieldListValueParams';
export type {default as OpenPolicyExpensifyCardsPageParams} from './OpenPolicyExpensifyCardsPageParams';
export type {default as RequestExpensifyCardLimitIncreaseParams} from './RequestExpensifyCardLimitIncreaseParams';
export type {default as UpdateNetSuiteGenericTypeParams} from './UpdateNetSuiteGenericTypeParams';
8 changes: 8 additions & 0 deletions src/libs/API/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,10 @@ const WRITE_COMMANDS = {
REQUEST_REFUND: 'User_RefundPurchase',
UPDATE_NETSUITE_SUBSIDIARY: 'UpdateNetSuiteSubsidiary',
CREATE_WORKSPACE_REPORT_FIELD: 'CreatePolicyReportField',
UPDATE_WORKSPACE_REPORT_FIELD_INITIAL_VALUE: 'SetPolicyReportFieldDefault',
ENABLE_WORKSPACE_REPORT_FIELD_LIST_VALUE: 'EnablePolicyReportFieldOption',
CREATE_WORKSPACE_REPORT_FIELD_LIST_VALUE: 'CreatePolicyReportFieldOption',
REMOVE_WORKSPACE_REPORT_FIELD_LIST_VALUE: 'RemovePolicyReportFieldOption',
UPDATE_NETSUITE_SYNC_TAX_CONFIGURATION: 'UpdateNetSuiteSyncTaxConfiguration',
UPDATE_NETSUITE_CROSS_SUBSIDIARY_CUSTOMER_CONFIGURATION: 'UpdateNetSuiteCrossSubsidiaryCustomerConfiguration',
UPDATE_NETSUITE_DEPARTMENTS_MAPPING: 'UpdateNetSuiteDepartmentsMapping',
Expand Down Expand Up @@ -517,6 +521,10 @@ type WriteCommandParameters = {

// Workspace report field parameters
[WRITE_COMMANDS.CREATE_WORKSPACE_REPORT_FIELD]: Parameters.CreateWorkspaceReportFieldParams;
[WRITE_COMMANDS.UPDATE_WORKSPACE_REPORT_FIELD_INITIAL_VALUE]: Parameters.UpdateWorkspaceReportFieldInitialValueParams;
[WRITE_COMMANDS.ENABLE_WORKSPACE_REPORT_FIELD_LIST_VALUE]: Parameters.EnableWorkspaceReportFieldListValueParams;
[WRITE_COMMANDS.CREATE_WORKSPACE_REPORT_FIELD_LIST_VALUE]: Parameters.CreateWorkspaceReportFieldListValueParams;
[WRITE_COMMANDS.REMOVE_WORKSPACE_REPORT_FIELD_LIST_VALUE]: Parameters.RemoveWorkspaceReportFieldListValueParams;

[WRITE_COMMANDS.UPDATE_NETSUITE_SYNC_TAX_CONFIGURATION]: Parameters.UpdateNetSuiteGenericTypeParams<'enabled', boolean>;
[WRITE_COMMANDS.UPDATE_NETSUITE_CROSS_SUBSIDIARY_CUSTOMER_CONFIGURATION]: Parameters.UpdateNetSuiteGenericTypeParams<'enabled', boolean>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,6 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
[SCREENS.WORKSPACE.TAGS_EDIT]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/WorkspaceEditTagsPage').default,
[SCREENS.WORKSPACE.TAG_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/WorkspaceCreateTagPage').default,
[SCREENS.WORKSPACE.TAG_EDIT]: () => require<ReactComponentModule>('../../../../pages/workspace/tags/EditTagPage').default,
[SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/WorkspaceReportFieldSettingsPage').default,
[SCREENS.WORKSPACE.TAXES_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/taxes/WorkspaceTaxesSettingsPage').default,
[SCREENS.WORKSPACE.TAXES_SETTINGS_CUSTOM_TAX_NAME]: () => require<ReactComponentModule>('../../../../pages/workspace/taxes/WorkspaceTaxesSettingsCustomTaxName').default,
[SCREENS.WORKSPACE.TAXES_SETTINGS_FOREIGN_CURRENCY_DEFAULT]: () => require<ReactComponentModule>('../../../../pages/workspace/taxes/WorkspaceTaxesSettingsForeignCurrency').default,
Expand Down Expand Up @@ -371,10 +370,12 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
[SCREENS.SETTINGS.SUBSCRIPTION.CHANGE_BILLING_CURRENCY]: () => require<ReactComponentModule>('../../../../pages/settings/Subscription/PaymentCard/ChangeBillingCurrency').default,
[SCREENS.SETTINGS.SUBSCRIPTION.ADD_PAYMENT_CARD]: () => require<ReactComponentModule>('../../../../pages/settings/Subscription/PaymentCard').default,
[SCREENS.SETTINGS.ADD_PAYMENT_CARD_CHANGE_CURRENCY]: () => require<ReactComponentModule>('../../../../pages/settings/PaymentCard/ChangeCurrency').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/WorkspaceCreateReportFieldPage').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_CREATE]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/CreateReportFieldPage').default,
[SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/ReportFieldSettingsPage').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_LIST_VALUES]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/ReportFieldListValuesPage').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_ADD_VALUE]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/ReportFieldAddListValuePage').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_VALUE_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/ValueSettingsPage').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_VALUE_SETTINGS]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/ReportFieldValueSettingsPage').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_INITIAL_VALUE]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/ReportFieldInitialValuePage').default,
[SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_VALUE]: () => require<ReactComponentModule>('../../../../pages/workspace/reportFields/ReportFieldEditValuePage').default,
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,13 @@ const FULL_SCREEN_TO_RHP_MAPPING: Partial<Record<FullScreenName, string[]>> = {
SCREENS.WORKSPACE.DISTANCE_RATE_DETAILS,
],
[SCREENS.WORKSPACE.REPORT_FIELDS]: [
SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS,
SCREENS.WORKSPACE.REPORT_FIELDS_CREATE,
SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS,
SCREENS.WORKSPACE.REPORT_FIELDS_LIST_VALUES,
SCREENS.WORKSPACE.REPORT_FIELDS_ADD_VALUE,
SCREENS.WORKSPACE.REPORT_FIELDS_VALUE_SETTINGS,
SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_VALUE,
SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_INITIAL_VALUE,
],
[SCREENS.WORKSPACE.EXPENSIFY_CARD]: [],
};
Expand Down
27 changes: 21 additions & 6 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -526,12 +526,6 @@ const config: LinkingOptions<RootStackParamList>['config'] = {
orderWeight: Number,
},
},
[SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS]: {
path: ROUTES.WORKSPACE_REPORT_FIELD_SETTINGS.route,
parse: {
reportFieldName: (reportFieldKey: string) => decodeURIComponent(reportFieldKey),
},
},
[SCREENS.WORKSPACE.TAXES_SETTINGS]: {
path: ROUTES.WORKSPACE_TAXES_SETTINGS.route,
},
Expand All @@ -549,16 +543,37 @@ const config: LinkingOptions<RootStackParamList>['config'] = {
},
[SCREENS.WORKSPACE.REPORT_FIELDS_LIST_VALUES]: {
path: ROUTES.WORKSPACE_REPORT_FIELD_LIST_VALUES.route,
parse: {
reportFieldID: (reportFieldID: string) => decodeURIComponent(reportFieldID),
},
},
[SCREENS.WORKSPACE.REPORT_FIELDS_ADD_VALUE]: {
path: ROUTES.WORKSPACE_REPORT_FIELD_ADD_VALUE.route,
parse: {
reportFieldID: (reportFieldID: string) => decodeURIComponent(reportFieldID),
},
},
[SCREENS.WORKSPACE.REPORT_FIELDS_VALUE_SETTINGS]: {
path: ROUTES.WORKSPACE_REPORT_FIELD_VALUE_SETTINGS.route,
parse: {
reportFieldID: (reportFieldID: string) => decodeURIComponent(reportFieldID),
},
},
[SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_VALUE]: {
path: ROUTES.WORKSPACE_REPORT_FIELD_EDIT_VALUE.route,
},
[SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS]: {
path: ROUTES.WORKSPACE_REPORT_FIELD_SETTINGS.route,
parse: {
reportFieldID: (reportFieldID: string) => decodeURIComponent(reportFieldID),
},
},
[SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_INITIAL_VALUE]: {
path: ROUTES.WORKSPACE_EDIT_REPORT_FIELD_INITIAL_VALUE.route,
parse: {
reportFieldID: (reportFieldID: string) => decodeURIComponent(reportFieldID),
},
},
[SCREENS.REIMBURSEMENT_ACCOUNT]: {
path: ROUTES.BANK_ACCOUNT_WITH_STEP_TO_OPEN.route,
exact: true,
Expand Down
15 changes: 11 additions & 4 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,10 +241,6 @@ type SettingsNavigatorParamList = {
orderWeight: number;
tagName: string;
};
[SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS]: {
policyID: string;
reportFieldKey: string;
};
[SCREENS.WORKSPACE.TAG_LIST_VIEW]: {
policyID: string;
orderWeight: number;
Expand Down Expand Up @@ -282,18 +278,29 @@ type SettingsNavigatorParamList = {
};
[SCREENS.WORKSPACE.REPORT_FIELDS_LIST_VALUES]: {
policyID: string;
reportFieldID?: string;
};
[SCREENS.WORKSPACE.REPORT_FIELDS_ADD_VALUE]: {
policyID: string;
reportFieldID?: string;
};
[SCREENS.WORKSPACE.REPORT_FIELDS_VALUE_SETTINGS]: {
policyID: string;
valueIndex: number;
reportFieldID?: string;
};
[SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_VALUE]: {
policyID: string;
valueIndex: number;
};
[SCREENS.WORKSPACE.REPORT_FIELD_SETTINGS]: {
policyID: string;
reportFieldID: string;
};
[SCREENS.WORKSPACE.REPORT_FIELDS_EDIT_INITIAL_VALUE]: {
policyID: string;
reportFieldID: string;
};
[SCREENS.WORKSPACE.MEMBER_DETAILS]: {
policyID: string;
accountID: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import type {FormInputErrors} from '@components/Form/types';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import type ONYXKEYS from '@src/ONYXKEYS';
import type {InputID} from '@src/types/form/WorkspaceReportFieldsForm';
import type {PolicyReportFieldType} from '@src/types/onyx/Policy';
import type {InputID} from '@src/types/form/WorkspaceReportFieldForm';
import type {PolicyReportField, PolicyReportFieldType} from '@src/types/onyx/Policy';
import * as ErrorUtils from './ErrorUtils';
import * as Localize from './Localize';
import * as ValidationUtils from './ValidationUtils';
Expand Down Expand Up @@ -67,4 +67,23 @@ function generateFieldID(name: string) {
return `field_id_${name.replace(CONST.REGEX.ANY_SPACE, '_').toUpperCase()}`;
}

export {getReportFieldTypeTranslationKey, getReportFieldAlternativeTextTranslationKey, validateReportFieldListValueName, generateFieldID};
/**
* Gets the initial value for a report field.
*/
function getReportFieldInitialValue(reportField: PolicyReportField | null): string {
if (!reportField) {
return '';
}

if (reportField.type === CONST.REPORT_FIELD_TYPES.LIST) {
return reportField.defaultValue ?? '';
}

if (reportField.type === CONST.REPORT_FIELD_TYPES.DATE) {
return Localize.translateLocal('common.currentDate');
}

return reportField.value ?? reportField.defaultValue;
}

export {getReportFieldTypeTranslationKey, getReportFieldAlternativeTextTranslationKey, validateReportFieldListValueName, generateFieldID, getReportFieldInitialValue};
Loading
Loading