From 4be8b563a1b3843e4b49d4914952261cf44b9974 Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Wed, 26 Feb 2025 02:45:57 +0530 Subject: [PATCH 1/4] fix: QBD - User is not returned to Export tab after export date/preferred exporter selected. Signed-off-by: krishna2323 --- .../qbd/export/QuickbooksDesktopExportDateSelectPage.tsx | 2 +- .../QuickbooksDesktopPreferredExporterConfigurationPage.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx index ac4c8bbb4e39..515bb35bc53e 100644 --- a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx +++ b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx @@ -43,7 +43,7 @@ function QuickbooksDesktopExportDateSelectPage({policy}: WithPolicyConnectionsPr if (row.value !== exportDate) { QuickbooksDesktop.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], ); diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx index b571f67e8350..e015bb3fe6ec 100644 --- a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx +++ b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx @@ -59,7 +59,7 @@ function QuickbooksDesktopPreferredExporterConfigurationPage({policy}: WithPolic if (row.value !== currentExporter) { QuickbooksDesktop.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], ); From 622c331cc31bdd500addf278ba191fb6085a076a Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Wed, 26 Feb 2025 03:18:39 +0530 Subject: [PATCH 2/4] fix eslint. Signed-off-by: krishna2323 --- src/libs/actions/Policy/Policy.ts | 5 +++- .../QuickbooksDesktopExportDateSelectPage.tsx | 24 +++++++++++------ ...ktopPreferredExporterConfigurationPage.tsx | 27 ++++++++++++------- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 21ea41bab8a8..c5f9a6099bca 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -651,7 +651,10 @@ function clearQBOErrorField(policyID: string | undefined, fieldName: string) { Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {connections: {quickbooksOnline: {config: {errorFields: {[fieldName]: null}}}}}); } -function clearQBDErrorField(policyID: string, fieldName: string) { +function clearQBDErrorField(policyID: string | undefined, fieldName: string) { + if (!policyID) { + return; + } Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {connections: {quickbooksDesktop: {config: {errorFields: {[fieldName]: null}}}}}); } diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx index 515bb35bc53e..959af8f99490 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,8 +40,11 @@ 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.getRoute(policyID)); }, @@ -57,13 +60,18 @@ 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)} shouldSingleExecuteRowSelect diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx index e015bb3fe6ec..2eabd5d07226 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,8 +55,11 @@ 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_EXPORT.getRoute(policyID)); }, @@ -83,14 +85,19 @@ 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)} /> From a6bb6b6122670257175e0f7b47aaef19e441cb1d Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Thu, 27 Feb 2025 01:44:01 +0530 Subject: [PATCH 3/4] minor update. Signed-off-by: krishna2323 --- src/libs/actions/Policy/Policy.ts | 5 +---- .../qbd/export/QuickbooksDesktopExportDateSelectPage.tsx | 7 ++++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index c5f9a6099bca..21ea41bab8a8 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -651,10 +651,7 @@ function clearQBOErrorField(policyID: string | undefined, fieldName: string) { Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {connections: {quickbooksOnline: {config: {errorFields: {[fieldName]: null}}}}}); } -function clearQBDErrorField(policyID: string | undefined, fieldName: string) { - if (!policyID) { - return; - } +function clearQBDErrorField(policyID: string, fieldName: string) { Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {connections: {quickbooksDesktop: {config: {errorFields: {[fieldName]: null}}}}}); } diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx index 959af8f99490..d6a02c8287d2 100644 --- a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx +++ b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopExportDateSelectPage.tsx @@ -73,7 +73,12 @@ function QuickbooksDesktopExportDateSelectPage({policy}: WithPolicyConnectionsPr 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 /> ); From 8b07b42ef3ab6ff436418a1e7a880ba763bbc672 Mon Sep 17 00:00:00 2001 From: krishna2323 Date: Thu, 27 Feb 2025 01:48:19 +0530 Subject: [PATCH 4/4] minor fix. Signed-off-by: krishna2323 --- ...QuickbooksDesktopPreferredExporterConfigurationPage.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx index 2eabd5d07226..68332977c3f4 100644 --- a/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx +++ b/src/pages/workspace/accounting/qbd/export/QuickbooksDesktopPreferredExporterConfigurationPage.tsx @@ -99,7 +99,12 @@ function QuickbooksDesktopPreferredExporterConfigurationPage({policy}: WithPolic 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); + }} /> ); }