diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx index ac4c8bbb4e39..d6a02c8287d2 100644 --- a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx +++ b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx @@ -6,9 +6,9 @@ import SelectionScreen from '@components/SelectionScreen'; import Text from '@components/Text'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; -import * as QuickbooksDesktop from '@libs/actions/connections/QuickbooksDesktop'; -import * as ErrorUtils from '@libs/ErrorUtils'; -import * as PolicyUtils from '@libs/PolicyUtils'; +import {updateQuickbooksDesktopExportDate} from '@libs/actions/connections/QuickbooksDesktop'; +import {getLatestErrorField} from '@libs/ErrorUtils'; +import {settingsPendingAction} from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; @@ -22,7 +22,7 @@ type CardListItem = ListItem & { function QuickbooksDesktopExportDateSelectPage({policy}: WithPolicyConnectionsProps) { const {translate} = useLocalize(); const styles = useThemeStyles(); - const policyID = policy?.id ?? '-1'; + const policyID = policy?.id; const qbdConfig = policy?.connections?.quickbooksDesktop?.config; const exportDate = qbdConfig?.export?.exportDate; @@ -40,10 +40,13 @@ function QuickbooksDesktopExportDateSelectPage({policy}: WithPolicyConnectionsPr const selectExportDate = useCallback( (row: CardListItem) => { + if (!policyID) { + return; + } if (row.value !== exportDate) { - QuickbooksDesktop.updateQuickbooksDesktopExportDate(policyID, row.value, exportDate); + updateQuickbooksDesktopExportDate(policyID, row.value, exportDate); } - Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_EXPORT_DATE_SELECT.getRoute(policyID)); + Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_EXPORT.getRoute(policyID)); }, [policyID, exportDate], ); @@ -57,15 +60,25 @@ function QuickbooksDesktopExportDateSelectPage({policy}: WithPolicyConnectionsPr sections={[{data}]} listItem={RadioListItem} headerContent={{translate('workspace.qbd.exportDate.description')}} - onBackButtonPress={() => Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_EXPORT.getRoute(policyID))} + onBackButtonPress={() => { + if (!policyID) { + return; + } + Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_EXPORT.getRoute(policyID)); + }} onSelectRow={selectExportDate} initiallyFocusedOptionKey={data.find((mode) => mode.isSelected)?.keyForList} title="workspace.qbd.exportDate.label" connectionName={CONST.POLICY.CONNECTIONS.NAME.QBD} - pendingAction={PolicyUtils.settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORT_DATE], qbdConfig?.pendingFields)} - errors={ErrorUtils.getLatestErrorField(qbdConfig, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORT_DATE)} + pendingAction={settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORT_DATE], qbdConfig?.pendingFields)} + errors={getLatestErrorField(qbdConfig, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORT_DATE)} errorRowStyles={[styles.ph5, styles.pv3]} - onClose={() => clearQBDErrorField(policyID, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORT_DATE)} + onClose={() => { + if (!policyID) { + return; + } + clearQBDErrorField(policyID, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORT_DATE); + }} shouldSingleExecuteRowSelect /> ); diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx index b571f67e8350..68332977c3f4 100644 --- a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx +++ b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx @@ -6,10 +6,9 @@ import Text from '@components/Text'; import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails'; import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; -import * as QuickbooksDesktop from '@libs/actions/connections/QuickbooksDesktop'; -import * as ErrorUtils from '@libs/ErrorUtils'; -import * as PolicyUtils from '@libs/PolicyUtils'; -import {getAdminEmployees} from '@libs/PolicyUtils'; +import {updateQuickbooksDesktopPreferredExporter} from '@libs/actions/connections/QuickbooksDesktop'; +import {getLatestErrorField} from '@libs/ErrorUtils'; +import {getAdminEmployees, isExpensifyTeam, settingsPendingAction} from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; @@ -29,7 +28,7 @@ function QuickbooksDesktopPreferredExporterConfigurationPage({policy}: WithPolic const {login: currentUserLogin} = useCurrentUserPersonalDetails(); const currentExporter = qbdConfig?.export?.exporter; - const policyID = policy?.id ?? '-1'; + const policyID = policy?.id; const data: CardListItem[] = useMemo( () => exporters?.reduce((options, exporter) => { @@ -38,7 +37,7 @@ function QuickbooksDesktopPreferredExporterConfigurationPage({policy}: WithPolic } // Don't show guides if the current user is not a guide themselves or an Expensify employee - if (PolicyUtils.isExpensifyTeam(exporter.email) && !PolicyUtils.isExpensifyTeam(policy?.owner) && !PolicyUtils.isExpensifyTeam(currentUserLogin)) { + if (isExpensifyTeam(exporter.email) && !isExpensifyTeam(policy?.owner) && !isExpensifyTeam(currentUserLogin)) { return options; } options.push({ @@ -56,10 +55,13 @@ function QuickbooksDesktopPreferredExporterConfigurationPage({policy}: WithPolic const selectExporter = useCallback( (row: CardListItem) => { + if (!policyID) { + return; + } if (row.value !== currentExporter) { - QuickbooksDesktop.updateQuickbooksDesktopPreferredExporter(policyID, row.value, currentExporter); + updateQuickbooksDesktopPreferredExporter(policyID, row.value, currentExporter); } - Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_PREFERRED_EXPORTER.getRoute(policyID)); + Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_EXPORT.getRoute(policyID)); }, [currentExporter, policyID], ); @@ -83,16 +85,26 @@ function QuickbooksDesktopPreferredExporterConfigurationPage({policy}: WithPolic sections={[{data}]} listItem={RadioListItem} headerContent={headerContent} - onBackButtonPress={() => Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_EXPORT.getRoute(policyID))} + onBackButtonPress={() => { + if (!policyID) { + return; + } + Navigation.goBack(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_EXPORT.getRoute(policyID)); + }} onSelectRow={selectExporter} shouldSingleExecuteRowSelect initiallyFocusedOptionKey={data.find((mode) => mode.isSelected)?.keyForList} title="workspace.accounting.preferredExporter" connectionName={CONST.POLICY.CONNECTIONS.NAME.QBD} - pendingAction={PolicyUtils.settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORTER], qbdConfig?.pendingFields)} - errors={ErrorUtils.getLatestErrorField(qbdConfig, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORTER)} + pendingAction={settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORTER], qbdConfig?.pendingFields)} + errors={getLatestErrorField(qbdConfig, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORTER)} errorRowStyles={[styles.ph5, styles.pv3]} - onClose={() => clearQBDErrorField(policyID, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORTER)} + onClose={() => { + if (!policyID) { + return; + } + clearQBDErrorField(policyID, CONST.QUICKBOOKS_DESKTOP_CONFIG.EXPORTER); + }} /> ); }