Skip to content

Commit aa6ab1a

Browse files
authored
Merge pull request #56822 from parasharrajat/exporterpage
[CP Staging] Fix Preferred export page settings routing
2 parents 309e18b + 4a5a554 commit aa6ab1a

File tree

3 files changed

+25
-20
lines changed

3 files changed

+25
-20
lines changed

src/libs/actions/connections/QuickbooksOnline.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,10 +289,13 @@ function updateQuickbooksOnlineNonReimbursableBillDefaultVendor<TSettingValue ex
289289
}
290290

291291
function updateQuickbooksOnlineReceivableAccount<TSettingValue extends QBOConnectionConfig['receivableAccount']>(
292-
policyID: string,
292+
policyID: string | undefined,
293293
settingValue: TSettingValue,
294294
oldSettingValue?: TSettingValue,
295295
) {
296+
if (!policyID) {
297+
return;
298+
}
296299
const {optimisticData, failureData, successData} = buildOnyxDataForQuickbooksConfiguration(policyID, CONST.QUICKBOOKS_CONFIG.RECEIVABLE_ACCOUNT, settingValue, oldSettingValue);
297300

298301
const parameters: UpdateQuickbooksOnlineGenericTypeParams = {
@@ -383,10 +386,13 @@ function updateQuickbooksOnlineReimbursementAccountID<TSettingValue extends Conn
383386
}
384387

385388
function updateQuickbooksOnlinePreferredExporter<TSettingValue extends Connections['quickbooksOnline']['config']['export']>(
386-
policyID: string,
389+
policyID: string | undefined,
387390
settingValue: TSettingValue,
388391
oldSettingValue?: TSettingValue,
389392
) {
393+
if (!policyID) {
394+
return;
395+
}
390396
const onyxData = buildOnyxDataForQuickbooksConfiguration(policyID, CONST.QUICKBOOKS_CONFIG.EXPORT, settingValue, oldSettingValue);
391397

392398
const parameters: UpdateQuickbooksOnlineGenericTypeParams = {

src/pages/workspace/accounting/qbo/export/QuickbooksExportInvoiceAccountSelectPage.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import SelectionScreen from '@components/SelectionScreen';
77
import Text from '@components/Text';
88
import useLocalize from '@hooks/useLocalize';
99
import useThemeStyles from '@hooks/useThemeStyles';
10-
import * as QuickbooksOnline from '@libs/actions/connections/QuickbooksOnline';
11-
import * as ErrorUtils from '@libs/ErrorUtils';
12-
import * as PolicyUtils from '@libs/PolicyUtils';
10+
import {updateQuickbooksOnlineReceivableAccount} from '@libs/actions/connections/QuickbooksOnline';
11+
import {getLatestErrorField} from '@libs/ErrorUtils';
12+
import {settingsPendingAction} from '@libs/PolicyUtils';
1313
import Navigation from '@navigation/Navigation';
1414
import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections';
1515
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
@@ -29,7 +29,7 @@ function QuickbooksExportInvoiceAccountSelectPage({policy}: WithPolicyConnection
2929
const {accountsReceivable} = policy?.connections?.quickbooksOnline?.data ?? {};
3030
const qboConfig = policy?.connections?.quickbooksOnline?.config;
3131

32-
const policyID = policy?.id ?? '-1';
32+
const policyID = policy?.id;
3333
const data: CardListItem[] = useMemo(
3434
() =>
3535
accountsReceivable?.map((account) => ({
@@ -44,9 +44,9 @@ function QuickbooksExportInvoiceAccountSelectPage({policy}: WithPolicyConnection
4444
const selectExportInvoice = useCallback(
4545
(row: CardListItem) => {
4646
if (row.value.id !== qboConfig?.receivableAccount?.id) {
47-
QuickbooksOnline.updateQuickbooksOnlineReceivableAccount(policyID, row.value, qboConfig?.receivableAccount);
47+
updateQuickbooksOnlineReceivableAccount(policyID, row.value, qboConfig?.receivableAccount);
4848
}
49-
Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_INVOICE_ACCOUNT_SELECT.getRoute(policyID));
49+
Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_EXPORT.getRoute(policyID));
5050
},
5151
[qboConfig?.receivableAccount, policyID],
5252
);
@@ -79,8 +79,8 @@ function QuickbooksExportInvoiceAccountSelectPage({policy}: WithPolicyConnection
7979
initiallyFocusedOptionKey={data.find((mode) => mode.isSelected)?.keyForList}
8080
title="workspace.qbo.exportInvoices"
8181
connectionName={CONST.POLICY.CONNECTIONS.NAME.QBO}
82-
pendingAction={PolicyUtils.settingsPendingAction([CONST.QUICKBOOKS_CONFIG.RECEIVABLE_ACCOUNT], qboConfig?.pendingFields)}
83-
errors={ErrorUtils.getLatestErrorField(qboConfig, CONST.QUICKBOOKS_CONFIG.RECEIVABLE_ACCOUNT)}
82+
pendingAction={settingsPendingAction([CONST.QUICKBOOKS_CONFIG.RECEIVABLE_ACCOUNT], qboConfig?.pendingFields)}
83+
errors={getLatestErrorField(qboConfig, CONST.QUICKBOOKS_CONFIG.RECEIVABLE_ACCOUNT)}
8484
errorRowStyles={[styles.ph5, styles.pv3]}
8585
onClose={() => clearQBOErrorField(policyID, CONST.QUICKBOOKS_CONFIG.RECEIVABLE_ACCOUNT)}
8686
listEmptyContent={listEmptyContent}

src/pages/workspace/accounting/qbo/export/QuickbooksPreferredExporterConfigurationPage.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@ import Text from '@components/Text';
66
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
77
import useLocalize from '@hooks/useLocalize';
88
import useThemeStyles from '@hooks/useThemeStyles';
9-
import * as QuickbooksOnline from '@libs/actions/connections/QuickbooksOnline';
10-
import * as ErrorUtils from '@libs/ErrorUtils';
11-
import * as PolicyUtils from '@libs/PolicyUtils';
12-
import {getAdminEmployees} from '@libs/PolicyUtils';
9+
import {updateQuickbooksOnlinePreferredExporter} from '@libs/actions/connections/QuickbooksOnline';
10+
import {getLatestErrorField} from '@libs/ErrorUtils';
11+
import {getAdminEmployees, isExpensifyTeam, settingsPendingAction} from '@libs/PolicyUtils';
1312
import Navigation from '@navigation/Navigation';
1413
import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections';
1514
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
@@ -28,7 +27,7 @@ function QuickbooksPreferredExporterConfigurationPage({policy}: WithPolicyConnec
2827
const exporters = getAdminEmployees(policy);
2928
const {login: currentUserLogin} = useCurrentUserPersonalDetails();
3029

31-
const policyID = policy?.id ?? '-1';
30+
const policyID = policy?.id;
3231
const data: CardListItem[] = useMemo(
3332
() =>
3433
exporters?.reduce<CardListItem[]>((options, exporter) => {
@@ -37,7 +36,7 @@ function QuickbooksPreferredExporterConfigurationPage({policy}: WithPolicyConnec
3736
}
3837

3938
// Don't show guides if the current user is not a guide themselves or an Expensify employee
40-
if (PolicyUtils.isExpensifyTeam(exporter.email) && !PolicyUtils.isExpensifyTeam(policy?.owner) && !PolicyUtils.isExpensifyTeam(currentUserLogin)) {
39+
if (isExpensifyTeam(exporter.email) && !isExpensifyTeam(policy?.owner) && !isExpensifyTeam(currentUserLogin)) {
4140
return options;
4241
}
4342
options.push({
@@ -54,9 +53,9 @@ function QuickbooksPreferredExporterConfigurationPage({policy}: WithPolicyConnec
5453
const selectExporter = useCallback(
5554
(row: CardListItem) => {
5655
if (row.value !== qboConfig?.export?.exporter) {
57-
QuickbooksOnline.updateQuickbooksOnlinePreferredExporter(policyID, {exporter: row.value}, {exporter: qboConfig?.export.exporter ?? ''});
56+
updateQuickbooksOnlinePreferredExporter(policyID, {exporter: row.value}, {exporter: qboConfig?.export?.exporter ?? ''});
5857
}
59-
Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_PREFERRED_EXPORTER.getRoute(policyID));
58+
Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_EXPORT.getRoute(policyID));
6059
},
6160
[qboConfig?.export, policyID],
6261
);
@@ -86,8 +85,8 @@ function QuickbooksPreferredExporterConfigurationPage({policy}: WithPolicyConnec
8685
initiallyFocusedOptionKey={data.find((mode) => mode.isSelected)?.keyForList}
8786
title="workspace.accounting.preferredExporter"
8887
connectionName={CONST.POLICY.CONNECTIONS.NAME.QBO}
89-
pendingAction={PolicyUtils.settingsPendingAction([CONST.QUICKBOOKS_CONFIG.EXPORT], qboConfig?.pendingFields)}
90-
errors={ErrorUtils.getLatestErrorField(qboConfig, CONST.QUICKBOOKS_CONFIG.EXPORT)}
88+
pendingAction={settingsPendingAction([CONST.QUICKBOOKS_CONFIG.EXPORT], qboConfig?.pendingFields)}
89+
errors={getLatestErrorField(qboConfig, CONST.QUICKBOOKS_CONFIG.EXPORT)}
9190
errorRowStyles={[styles.ph5, styles.pv3]}
9291
onClose={() => clearQBOErrorField(policyID, CONST.QUICKBOOKS_CONFIG.EXPORT)}
9392
/>

0 commit comments

Comments
 (0)