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

QBO import main page #38400

Merged
merged 39 commits into from
Apr 9, 2024
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
96635ab
QBO import main page
narefyev91 Mar 15, 2024
b9670c9
lock
narefyev91 Mar 15, 2024
ef23460
Merge branch 'main' into qbo-import-main-page
narefyev91 Mar 18, 2024
c863078
Merge branch 'main' into qbo-import-main-page
narefyev91 Mar 18, 2024
8e78317
Add Chart of account sub page + new routes and Policy api
narefyev91 Mar 19, 2024
c0fe32b
prettier
narefyev91 Mar 19, 2024
f85ce0d
resolve suggested comments
narefyev91 Mar 20, 2024
1b8bfb9
Merge branch 'main' into qbo-import-main-page
narefyev91 Mar 20, 2024
7b90e68
update naming, add mock pages, and correct routing
narefyev91 Mar 20, 2024
758a77b
fix ts
narefyev91 Mar 20, 2024
441bbf0
add 2 more screen - classes and customer + pending actions, clean up …
narefyev91 Mar 21, 2024
56c728f
Merge branch 'main' into qbo-import-main-page
narefyev91 Mar 21, 2024
6bc7a25
update after merge conflicts
narefyev91 Mar 21, 2024
3a6113b
remove line
narefyev91 Mar 21, 2024
bcfa12a
lint
narefyev91 Mar 21, 2024
3477c63
Taxes and Locations pages
narefyev91 Mar 22, 2024
ded9218
Merge branch 'main' into qbo-import-main-page
narefyev91 Mar 22, 2024
9c170b4
translations
narefyev91 Mar 22, 2024
b4d845f
updated booleans and rename methods to function execution
narefyev91 Mar 25, 2024
8fdf373
fix native ui and warning
narefyev91 Mar 25, 2024
95a844e
prettier
narefyev91 Mar 25, 2024
83fa595
updates after design review
narefyev91 Mar 26, 2024
40b55eb
design review updates
narefyev91 Mar 26, 2024
3286d8b
Merge branch 'main' into qbo-import-main-page
narefyev91 Mar 27, 2024
0a5e35e
Merge branch 'main' into qbo-import-main-page
narefyev91 Apr 2, 2024
5ee4227
updates based on new stack implementation
narefyev91 Apr 2, 2024
9717dfb
prettier
narefyev91 Apr 2, 2024
6694dc2
Export date page - initial
narefyev91 Apr 3, 2024
d8e225e
add wrappers for not showing page
narefyev91 Apr 4, 2024
2d37315
resolve c+ comments
narefyev91 Apr 4, 2024
1e59910
remove color
narefyev91 Apr 4, 2024
3ca396f
resolve comments
narefyev91 Apr 8, 2024
b4d73c1
remove true false from types
narefyev91 Apr 9, 2024
fb31fb1
resolve c+ comments
narefyev91 Apr 9, 2024
6355d8c
Update src/pages/workspace/accounting/qbo/QuickbooksChartOfAccountsPa…
narefyev91 Apr 9, 2024
08bbde1
Update src/pages/workspace/accounting/WorkspaceAccountingPage.tsx
narefyev91 Apr 9, 2024
1a94706
Merge branch 'main' into qbo-import-main-page
narefyev91 Apr 9, 2024
79b9198
merge updates
narefyev91 Apr 9, 2024
03c7452
prettier
narefyev91 Apr 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
18 changes: 18 additions & 0 deletions src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1200,6 +1200,24 @@ const CONST = {
EXPENSIFY_EMAIL_DOMAIN: '@expensify.com',
},

INTEGRATION_ENTITY_MAP_TYPES: {
DEFAULT: 'DEFAULT',
NONE: 'NONE',
TAG: 'TAG',
REPORT_FIELD: 'REPORT_FIELD',
NOT_IMPORTED: 'NOT_IMPORTED',
IMPORTED: 'IMPORTED',
},
QUICK_BOOKS_ONLINE: 'quickbooksOnline',

QUICK_BOOKS_IMPORTS: {
SYNC_CLASSES: 'syncClasses',
ENABLE_NEW_CATEGORIES: 'enableNewCategories',
SYNC_CUSTOMERS: 'syncCustomers',
SYNC_LOCATIONS: 'syncLocations',
SYNC_TAXES: 'syncTaxes',
},

ACCOUNT_ID: {
ACCOUNTING: Number(Config?.EXPENSIFY_ACCOUNT_ID_ACCOUNTING ?? 9645353),
ADMIN: Number(Config?.EXPENSIFY_ACCOUNT_ID_ADMIN ?? -1),
Expand Down
24 changes: 24 additions & 0 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -697,6 +697,30 @@ const ROUTES = {
route: 'r/:reportID/transaction/:transactionID/receipt',
getRoute: (reportID: string, transactionID: string) => `r/${reportID}/transaction/${transactionID}/receipt` as const,
},
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_IMPORT: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import` as const,
},
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/accounts',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/accounts` as const,
},
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CLASSES: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/classes',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/classes` as const,
},
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CUSTOMERS: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/customers',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/customers` as const,
},
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_LOCATIONS: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/locations',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/locations` as const,
},
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_TAXES: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/import/taxes',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/import/taxes` as const,
},
} as const;

/**
Expand Down
6 changes: 6 additions & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,12 @@ const SCREENS = {
DISTANCE_RATES: 'Distance_Rates',
CREATE_DISTANCE_RATE: 'Create_Distance_Rate',
DISTANCE_RATES_SETTINGS: 'Distance_Rates_Settings',
QUICKBOOKS_ONLINE_IMPORT: 'Workspace_Accounting_Quickbooks_Online_Import',
QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS: 'Workspace_Accounting_Quickbooks_Online_Import_Chart_Of_Accounts',
QUICKBOOKS_ONLINE_CLASSES: 'Workspace_Accounting_Quickbooks_Online_Import_Classes',
QUICKBOOKS_ONLINE_CUSTOMERS: 'Workspace_Accounting_Quickbooks_Online_Import_Customers',
QUICKBOOKS_ONLINE_LOCATIONS: 'Workspace_Accounting_Quickbooks_Online_Import_Locations',
QUICKBOOKS_ONLINE_TAXES: 'Workspace_Accounting_Quickbooks_Online_Import_Taxes',
DISTANCE_RATE_DETAILS: 'Distance_Rate_Details',
DISTANCE_RATE_EDIT: 'Distance_Rate_Edit',
},
Expand Down
24 changes: 24 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1818,6 +1818,7 @@ export default {
reimburse: 'Reimbursements',
categories: 'Categories',
tags: 'Tags',
reportFields: 'Report Fields',
taxes: 'Taxes',
bills: 'Bills',
invoices: 'Invoices',
Expand Down Expand Up @@ -1849,6 +1850,29 @@ export default {
welcomeNote: ({workspaceName}: WelcomeNoteParams) =>
`You have been invited to ${workspaceName || 'a workspace'}! Download the Expensify mobile app at use.expensify.com/download to start tracking your expenses.`,
},
qbo: {
import: 'Import',
importDescription: 'Choose which coding configurations are imported from QuickBooks Online to Expensify.',
classes: 'Classes',
accounts: 'Chart of accounts',
locations: 'Locations',
taxes: 'Taxes',
customers: 'Customers/Projects',
imported: 'Imported',
displayedAs: 'Displayed as',
notImported: 'Not imported',
importedAsTags: 'Imported, displayed as tags',
importedAsReportFields: 'Imported, displayed as report fields',
accountsDescription: 'Chart of Accounts import as categories when connected to an accounting integration, this cannot be disabled.',
accountsSwitchTitle: 'Enable newly imported Chart of Accounts.',
accountsSwitchDescription: 'New categories imported from QuickBooks Online to Expensify will be either enabled or disabled by default.',
classesDescription: 'Choose whether to import classes, and see where classes are displayed.',
customersDescription: 'Choose whether to import customers/projects and see where customers/projects are displayed.',
locationsDescription: 'Choose whether to import locations, and see where locations are displayed.',
taxesDescription: 'Choose whether to import tax rates and tax defaults from your accounting integration.',
locationsAdditionalDescription:
'Locations are imported as Tags. This limits exporting expense reports as Vendor Bills or Checks to QuickBooks Online. To unlock these export options, either disable Locations import or upgrade to the Control Plan to export Locations encoded as a Report Field.',
},
type: {
free: 'Free',
control: 'Control',
Expand Down
24 changes: 24 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1845,6 +1845,7 @@ export default {
reimburse: 'Reembolsos',
categories: 'Categorías',
tags: 'Etiquetas',
reportFields: 'Campos de informe',
taxes: 'Impuestos',
bills: 'Pagar facturas',
invoices: 'Enviar facturas',
Expand Down Expand Up @@ -1876,6 +1877,29 @@ export default {
welcomeNote: ({workspaceName}: WelcomeNoteParams) =>
`¡Has sido invitado a ${workspaceName}! Descargue la aplicación móvil Expensify en use.expensify.com/download para comenzar a rastrear sus gastos.`,
},
qbo: {
import: 'Importación',
importDescription: 'Elige que configuraciónes de codificación son importadas desde QuickBooks Online a Expensify.',
classes: 'Clases',
accounts: 'Plan de cuentas',
locations: 'Lugares',
taxes: 'Impuestos',
customers: 'Clientes/Proyectos',
imported: 'Importado',
displayedAs: 'Mostrado como',
notImported: 'No importado',
importedAsTags: 'Importado, mostrado como etiqueta',
importedAsReportFields: 'Importado, mostrado como campo de informe',
accountsDescription: 'Los planes de cuentas se importan como categorías cuando está conectado con una integración de contaduría, esto no se puede desactivar.',
accountsSwitchTitle: 'Habilita el plan de cuentas recien importado',
accountsSwitchDescription: 'Las nuevas categorías importadas desde QuickBooks Online a Expensify serán activadas o desactivadas por defecto.',
classesDescription: 'Elige si quieres importar las clases y donde las clases son mostradas.',
customersDescription: 'Elige si queres importar clientes/proyectos y donde los clientes/proyectos son mostrados.',
locationsDescription: 'Elige si quieres importar lugares y donde los lugares son mostrados.',
taxesDescription: 'Elige si quires importar las tasas de impuestos y los impuestos por defecto de tu integración de contaduría.',
locationsAdditionalDescription:
'Los lugares son importados como Etiquegas. Esto limita a exportar los informes de gastos como Factura del Proveedor o Cheques a Quicbooks Online. Para desbloquear estas opciones de exportación desactiva la importación de Lugares o cambia al Plan Control para exportar Lugares como Campos de Informes.',
},
type: {
free: 'Gratis',
control: 'Control',
Expand Down
12 changes: 12 additions & 0 deletions src/libs/API/parameters/UpdatePolicyConnectionConfigParams.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import type {ValueOf} from 'type-fest';
import type CONST from '@src/CONST';

type UpdatePolicyConnectionConfigParams = {
policyID: string;
connectionName: string;
settingName: ValueOf<typeof CONST.QUICK_BOOKS_IMPORTS>;
settingValue: ValueOf<typeof CONST.INTEGRATION_ENTITY_MAP_TYPES>;
idempotencyKey: string;
};

export default UpdatePolicyConnectionConfigParams;
1 change: 1 addition & 0 deletions src/libs/API/parameters/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -197,4 +197,5 @@ export type {default as DeletePolicyTagsParams} from './DeletePolicyTagsParams';
export type {default as SetPolicyCustomTaxNameParams} from './SetPolicyCustomTaxNameParams';
export type {default as SetPolicyForeignCurrencyDefaultParams} from './SetPolicyForeignCurrencyDefaultParams';
export type {default as SetPolicyCurrencyDefaultParams} from './SetPolicyCurrencyDefaultParams';
export type {default as UpdatePolicyConnectionConfigParams} from './UpdatePolicyConnectionConfigParams';
export type {default as RenamePolicyTaxParams} from './RenamePolicyTaxParams';
2 changes: 2 additions & 0 deletions src/libs/API/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ const WRITE_COMMANDS = {
ACCEPT_JOIN_REQUEST: 'AcceptJoinRequest',
DECLINE_JOIN_REQUEST: 'DeclineJoinRequest',
CREATE_POLICY_TAX: 'CreatePolicyTax',
UPDATE_POLICY_CONNECTION_CONFIG: 'UpdatePolicyConnectionConfig',
SET_POLICY_TAXES_ENABLED: 'SetPolicyTaxesEnabled',
DELETE_POLICY_TAXES: 'DeletePolicyTaxes',
UPDATE_POLICY_TAX_VALUE: 'UpdatePolicyTaxValue',
Expand Down Expand Up @@ -389,6 +390,7 @@ 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_CONNECTION_CONFIG]: Parameters.UpdatePolicyConnectionConfigParams;
[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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,12 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
[SCREENS.SETTINGS.EXIT_SURVEY.REASON]: () => require('../../../../pages/settings/ExitSurvey/ExitSurveyReasonPage').default as React.ComponentType,
[SCREENS.SETTINGS.EXIT_SURVEY.RESPONSE]: () => require('../../../../pages/settings/ExitSurvey/ExitSurveyResponsePage').default as React.ComponentType,
[SCREENS.SETTINGS.EXIT_SURVEY.CONFIRM]: () => require('../../../../pages/settings/ExitSurvey/ExitSurveyConfirmPage').default as React.ComponentType,
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_IMPORT]: () => require('../../../../pages/workspace/accounting/qbo/QuickbooksImportPage').default as React.ComponentType,
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS]: () => require('../../../../pages/workspace/accounting/qbo/QuickbooksChartOfAccountsPage').default as React.ComponentType,
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CUSTOMERS]: () => require('../../../../pages/workspace/accounting/qbo/QuickbooksCustomersPage').default as React.ComponentType,
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_TAXES]: () => require('../../../../pages/workspace/accounting/qbo/QuickbooksTaxesPage').default as React.ComponentType,
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_LOCATIONS]: () => require('../../../../pages/workspace/accounting/qbo/QuickbooksLocationsPage').default as React.ComponentType,
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CLASSES]: () => require('../../../../pages/workspace/accounting/qbo/QuickbooksClassesPage').default as React.ComponentType,
[SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_FREQUENCY]: () => require('../../../../pages/workspace/workflows/WorkspaceAutoReportingFrequencyPage').default as React.ComponentType,
[SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET]: () =>
require('../../../../pages/workspace/workflows/WorkspaceAutoReportingMonthlyOffsetPage').default as React.ComponentType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ const FULL_SCREEN_TO_RHP_MAPPING: Partial<Record<FullScreenName, string[]>> = {
SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET,
SCREENS.WORKSPACE.WORKFLOWS_PAYER,
],
[SCREENS.WORKSPACE.ACCOUNTING]: [
SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_IMPORT,
SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS,
SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CLASSES,
SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_TAXES,
SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_LOCATIONS,
SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CUSTOMERS,
],
[SCREENS.WORKSPACE.TAXES]: [
SCREENS.WORKSPACE.TAXES_SETTINGS,
SCREENS.WORKSPACE.TAX_CREATE,
Expand Down
6 changes: 6 additions & 0 deletions src/libs/Navigation/linkingConfig/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,12 @@ const config: LinkingOptions<RootStackParamList>['config'] = {
[SCREENS.WORKSPACE.CURRENCY]: {
path: ROUTES.WORKSPACE_PROFILE_CURRENCY.route,
},
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_IMPORT]: {path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_IMPORT.route},
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS]: {path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS.route},
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CLASSES]: {path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CLASSES.route},
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CUSTOMERS]: {path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_CUSTOMERS.route},
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_LOCATIONS]: {path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_LOCATIONS.route},
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_TAXES]: {path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_TAXES.route},
[SCREENS.WORKSPACE.DESCRIPTION]: {
path: ROUTES.WORKSPACE_PROFILE_DESCRIPTION.route,
},
Expand Down
21 changes: 21 additions & 0 deletions src/libs/Navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,24 @@ type SettingsNavigatorParamList = {
[SCREENS.WORKSPACE.DISTANCE_RATES_SETTINGS]: {
policyID: string;
};
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_IMPORT]: {
policyID: string;
};
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS]: {
policyID: string;
};
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_LOCATIONS]: {
policyID: string;
};
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CLASSES]: {
policyID: string;
};
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_CUSTOMERS]: {
policyID: string;
};
[SCREENS.WORKSPACE.QUICKBOOKS_ONLINE_TAXES]: {
policyID: string;
};
[SCREENS.GET_ASSISTANCE]: {
backTo: Routes;
};
Expand Down Expand Up @@ -625,6 +643,9 @@ type WorkspacesCentralPaneNavigatorParamList = {
[SCREENS.WORKSPACE.DISTANCE_RATES]: {
policyID: string;
};
[SCREENS.WORKSPACE.ACCOUNTING]: {
policyID: string;
};
};

type FullScreenNavigatorParamList = {
Expand Down
72 changes: 72 additions & 0 deletions src/libs/actions/Policy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3721,6 +3721,77 @@ function openPolicyDistanceRatesPage(policyID?: string) {
API.read(READ_COMMANDS.OPEN_POLICY_DISTANCE_RATES_PAGE, params);
}

function updatePolicyConnectionConfig(policyID: string, settingName: ValueOf<typeof CONST.QUICK_BOOKS_IMPORTS>, settingValue: ValueOf<typeof CONST.INTEGRATION_ENTITY_MAP_TYPES>) {
const parameters = {policyID, connectionName: CONST.QUICK_BOOKS_ONLINE, settingName, settingValue, idempotencyKey: settingName};
const optimisticData: OnyxUpdate[] = [
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
value: {
connections: {
quickbooksOnline: {
config: {
[settingName]: settingValue,
pendingFields: {
[settingName]: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE,
},
errorFields: {
[settingName]: null,
},
},
},
},
},
},
];

const failureData: OnyxUpdate[] = [
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
value: {
connections: {
quickbooksOnline: {
config: {
[settingName]: settingValue,
pendingFields: {
[settingName]: null,
},
errorFields: {
[settingName]: ErrorUtils.getMicroSecondOnyxError('common.genericErrorMessage'),
},
},
},
},
},
},
];

const successData: OnyxUpdate[] = [
{
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.POLICY}${policyID}`,
value: {
connections: {
quickbooksOnline: {
config: {
[settingName]: settingValue,
pendingFields: {
[settingName]: null,
},
errorFields: {
[settingName]: null,
},
},
},
},
},
},
];

API.write(WRITE_COMMANDS.UPDATE_POLICY_CONNECTION_CONFIG, parameters, {optimisticData, failureData, successData});
}

function navigateWhenEnableFeature(policyID: string, featureRoute: Route) {
const isNarrowLayout = getIsNarrowLayout();
if (isNarrowLayout) {
Expand Down Expand Up @@ -4995,6 +5066,7 @@ export {
setWorkspaceTagEnabled,
setWorkspaceCurrencyDefault,
setForeignCurrencyDefault,
updatePolicyConnectionConfig,
setPolicyCustomTaxName,
clearPolicyErrorField,
isCurrencySupportedForDirectReimbursement,
Expand Down
Loading
Loading