diff --git a/src/ROUTES.ts b/src/ROUTES.ts index bad346a8f0d0..7869b822c924 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -1446,6 +1446,26 @@ const ROUTES = { return `workspaces/${policyID}/accounting/quickbooks-desktop/advanced/autosync` as const; }, }, + POLICY_ACCOUNTING_CARD_RECONCILIATION_QUICKBOOKS_DESKTOP_AUTO_SYNC: { + route: 'workspaces/:policyID/accounting/quickbooks-desktop/card-reconciliation/autosync', + getRoute: (policyID?: string) => { + if (!policyID) { + Log.warn('Invalid policyID is used to build the POLICY_ACCOUNTING_CARD_RECONCILIATION_QUICKBOOKS_DESKTOP_AUTO_SYNC route'); + } + + return `workspaces/${policyID}/accounting/quickbooks-desktop/card-reconciliation/autosync` as const; + }, + }, + POLICY_ACCOUNTING_CARD_RECONCILIATION_SAGE_INTACCT_AUTO_SYNC: { + route: 'workspaces/:policyID/accounting/sage-intacct/card-reconciliation/autosync', + getRoute: (policyID?: string) => { + if (!policyID) { + Log.warn('Invalid policyID is used to build the POLICY_ACCOUNTING_CARD_RECONCILIATION_SAGE_INTACCT_AUTO_SYNC route'); + } + + return `workspaces/${policyID}/accounting/sage-intacct/card-reconciliation/autosync` as const; + }, + }, POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_ACCOUNTING_METHOD: { route: 'workspaces/:policyID/accounting/quickbooks-desktop/advanced/autosync/accounting-method', getRoute: (policyID?: string) => { @@ -1734,7 +1754,13 @@ const ROUTES = { }, WORKSPACE_ACCOUNTING_CARD_RECONCILIATION: { route: 'workspaces/:policyID/accounting/:connection/card-reconciliation', - getRoute: (policyID: string, connection?: ValueOf) => `workspaces/${policyID}/accounting/${connection as string}/card-reconciliation` as const, + getRoute: (policyID?: string, connection?: ValueOf) => { + if (!policyID) { + Log.warn('Invalid policyID is used to build the WORKSPACE_ACCOUNTING_CARD_RECONCILIATION route'); + } + + return `workspaces/${policyID}/accounting/${connection as string}/card-reconciliation` as const; + }, }, WORKSPACE_ACCOUNTING_RECONCILIATION_ACCOUNT_SETTINGS: { route: 'workspaces/:policyID/accounting/:connection/card-reconciliation/account', @@ -3178,11 +3204,12 @@ const ROUTES = { }, POLICY_ACCOUNTING_SAGE_INTACCT_AUTO_SYNC: { route: 'workspaces/:policyID/accounting/sage-intacct/advanced/autosync', - getRoute: (policyID: string | undefined) => { + getRoute: (policyID: string | undefined, backTo?: string) => { if (!policyID) { Log.warn('Invalid policyID is used to build the POLICY_ACCOUNTING_SAGE_INTACCT_AUTO_SYNC route'); } - return `workspaces/${policyID}/accounting/sage-intacct/advanced/autosync` as const; + // eslint-disable-next-line no-restricted-syntax + return getUrlWithBackToParam(`workspaces/${policyID}/accounting/sage-intacct/advanced/autosync` as const, backTo); }, }, POLICY_ACCOUNTING_SAGE_INTACCT_ACCOUNTING_METHOD: { diff --git a/src/SCREENS.ts b/src/SCREENS.ts index cab8d814b911..131f7175a167 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -550,6 +550,8 @@ const SCREENS = { SAGE_INTACCT_ACCOUNTING_METHOD: 'Policy_Accounting_Sage_Intacct_Accounting_Method', SAGE_INTACCT_PAYMENT_ACCOUNT: 'Policy_Accounting_Sage_Intacct_Payment_Account', CARD_RECONCILIATION: 'Policy_Accounting_Card_Reconciliation', + CARD_RECONCILIATION_QUICKBOOKS_DESKTOP_AUTO_SYNC: 'Policy_Accounting_Card_Reconciliation_Quickbooks_Desktop_Auto_Sync', + CARD_RECONCILIATION_SAGE_INTACCT_AUTO_SYNC: 'Policy_Accounting_Card_Reconciliation_Sage_Intacct_Auto_Sync', RECONCILIATION_ACCOUNT_SETTINGS: 'Policy_Accounting_Reconciliation_Account_Settings', }, INITIAL: 'Workspace_Initial', diff --git a/src/components/ConnectionLayout.tsx b/src/components/ConnectionLayout.tsx index b593caa8d5f8..08b8509b09e1 100644 --- a/src/components/ConnectionLayout.tsx +++ b/src/components/ConnectionLayout.tsx @@ -107,7 +107,7 @@ function ConnectionLayout({ }: ConnectionLayoutProps) { const {translate} = useLocalize(); - const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`); + const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {canBeMissing: true}); const isConnectionEmpty = isEmpty(policy?.connections?.[connectionName]); const renderSelectionContent = useMemo( @@ -130,7 +130,7 @@ function ConnectionLayout({ policyID={policyID} accessVariants={accessVariants} featureName={featureName} - shouldBeBlocked={!!shouldBeBlocked || shouldBlockByConnection} + shouldBeBlocked={!!shouldBeBlocked && shouldBlockByConnection} > require('../../../../pages/workspace/accounting/intacct/advanced/SageIntacctPaymentAccountPage').default, [SCREENS.WORKSPACE.ACCOUNTING.CARD_RECONCILIATION]: () => require('../../../../pages/workspace/accounting/reconciliation/CardReconciliationPage').default, + [SCREENS.WORKSPACE.ACCOUNTING.CARD_RECONCILIATION_QUICKBOOKS_DESKTOP_AUTO_SYNC]: () => + require('../../../../pages/workspace/accounting/reconciliation/CardReconciliationQuickbooksDesktopAutoSyncPage').default, + [SCREENS.WORKSPACE.ACCOUNTING.CARD_RECONCILIATION_SAGE_INTACCT_AUTO_SYNC]: () => + require('../../../../pages/workspace/accounting/reconciliation/CardReconciliationSageIntacctAutoSyncPage').default, [SCREENS.WORKSPACE.ACCOUNTING.RECONCILIATION_ACCOUNT_SETTINGS]: () => require('../../../../pages/workspace/accounting/reconciliation/ReconciliationAccountSettingsPage').default, [SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_FREQUENCY]: () => require('../../../../pages/workspace/workflows/WorkspaceAutoReportingFrequencyPage').default, diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts index 0efb1dacd98f..f109739ae4a2 100644 --- a/src/libs/Navigation/linkingConfig/config.ts +++ b/src/libs/Navigation/linkingConfig/config.ts @@ -656,6 +656,12 @@ const config: LinkingOptions['config'] = { [SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_ACCOUNTING_METHOD]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_ACCOUNTING_METHOD.route}, [SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_PAYMENT_ACCOUNT]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_PAYMENT_ACCOUNT.route}, [SCREENS.WORKSPACE.ACCOUNTING.CARD_RECONCILIATION]: {path: ROUTES.WORKSPACE_ACCOUNTING_CARD_RECONCILIATION.route}, + [SCREENS.WORKSPACE.ACCOUNTING.CARD_RECONCILIATION_QUICKBOOKS_DESKTOP_AUTO_SYNC]: { + path: ROUTES.POLICY_ACCOUNTING_CARD_RECONCILIATION_QUICKBOOKS_DESKTOP_AUTO_SYNC.route, + }, + [SCREENS.WORKSPACE.ACCOUNTING.CARD_RECONCILIATION_SAGE_INTACCT_AUTO_SYNC]: { + path: ROUTES.POLICY_ACCOUNTING_CARD_RECONCILIATION_SAGE_INTACCT_AUTO_SYNC.route, + }, [SCREENS.WORKSPACE.ACCOUNTING.RECONCILIATION_ACCOUNT_SETTINGS]: {path: ROUTES.WORKSPACE_ACCOUNTING_RECONCILIATION_ACCOUNT_SETTINGS.route}, [SCREENS.WORKSPACE.DESCRIPTION]: { path: ROUTES.WORKSPACE_OVERVIEW_DESCRIPTION.route, diff --git a/src/pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPage.tsx b/src/pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPage.tsx index 873c2e21420b..012222b5b4c1 100644 --- a/src/pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPage.tsx +++ b/src/pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPage.tsx @@ -1,76 +1,10 @@ -import {CONST as COMMON_CONST} from 'expensify-common'; -import React, {useCallback} from 'react'; -import ConnectionLayout from '@components/ConnectionLayout'; -import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription'; -import OfflineWithFeedback from '@components/OfflineWithFeedback'; -import useLocalize from '@hooks/useLocalize'; -import useThemeStyles from '@hooks/useThemeStyles'; -import {updateSageIntacctAutoSync} from '@libs/actions/connections/SageIntacct'; -import {getLatestErrorField} from '@libs/ErrorUtils'; -import Navigation from '@libs/Navigation/Navigation'; -import {settingsPendingAction} from '@libs/PolicyUtils'; +import React from 'react'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; -import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; -import {clearSageIntacctErrorField} from '@userActions/Policy/Policy'; -import CONST from '@src/CONST'; -import type {TranslationPaths} from '@src/languages/types'; -import ROUTES from '@src/ROUTES'; +import SageIntacctAutoSyncPageBase from './SageIntacctAutoSyncPageBase'; function SageIntacctAutoSyncPage({policy}: WithPolicyConnectionsProps) { - const styles = useThemeStyles(); - const {translate} = useLocalize(); - const policyID = policy?.id; - const config = policy?.connections?.intacct?.config; - const {autoSync, pendingFields} = config ?? {}; - const accountingMethod = config?.export?.accountingMethod ?? COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH; - const pendingAction = settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC], pendingFields) ?? settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.ACCOUNTING_METHOD], pendingFields); - - const goBack = useCallback(() => { - Navigation.goBack(ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_ADVANCED.getRoute(policyID)); - }, [policyID]); - - return ( - - updateSageIntacctAutoSync(policyID, !autoSync?.enabled)} - pendingAction={settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC_ENABLED], pendingFields)} - errors={getLatestErrorField(config ?? {}, CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC_ENABLED)} - onCloseError={() => clearSageIntacctErrorField(policyID, CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC_ENABLED)} - /> - {!!autoSync?.enabled && ( - - Navigation.navigate(ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_ACCOUNTING_METHOD.getRoute(policyID))} - /> - - )} - - ); + return ; } SageIntacctAutoSyncPage.displayName = 'SageIntacctAutoSyncPage'; diff --git a/src/pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPageBase.tsx b/src/pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPageBase.tsx new file mode 100644 index 000000000000..60485d588ce4 --- /dev/null +++ b/src/pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPageBase.tsx @@ -0,0 +1,85 @@ +import {CONST as COMMON_CONST} from 'expensify-common'; +import React, {useCallback} from 'react'; +import type {OnyxEntry} from 'react-native-onyx'; +import ConnectionLayout from '@components/ConnectionLayout'; +import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription'; +import OfflineWithFeedback from '@components/OfflineWithFeedback'; +import useLocalize from '@hooks/useLocalize'; +import useThemeStyles from '@hooks/useThemeStyles'; +import {updateSageIntacctAutoSync} from '@libs/actions/connections/SageIntacct'; +import {getLatestErrorField} from '@libs/ErrorUtils'; +import Navigation from '@libs/Navigation/Navigation'; +import {settingsPendingAction} from '@libs/PolicyUtils'; +import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; +import {clearSageIntacctErrorField} from '@userActions/Policy/Policy'; +import CONST from '@src/CONST'; +import type {TranslationPaths} from '@src/languages/types'; +import ROUTES from '@src/ROUTES'; +import type {Route} from '@src/ROUTES'; +import type {Policy} from '@src/types/onyx'; + +type SageIntacctAutoSyncPageBaseParams = { + policy: OnyxEntry; + navigateBackTo?: Route; +}; + +function SageIntacctAutoSyncPageBase({policy, navigateBackTo}: SageIntacctAutoSyncPageBaseParams) { + const styles = useThemeStyles(); + const {translate} = useLocalize(); + const policyID = policy?.id; + const config = policy?.connections?.intacct?.config; + const {autoSync, pendingFields} = config ?? {}; + const accountingMethod = config?.export?.accountingMethod ?? COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH; + const pendingAction = settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC], pendingFields) ?? settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.ACCOUNTING_METHOD], pendingFields); + + const goBack = useCallback(() => { + Navigation.goBack(navigateBackTo ?? ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_ADVANCED.getRoute(policyID)); + }, [navigateBackTo, policyID]); + + return ( + + updateSageIntacctAutoSync(policyID, !autoSync?.enabled)} + pendingAction={settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC_ENABLED], pendingFields)} + errors={getLatestErrorField(config ?? {}, CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC_ENABLED)} + onCloseError={() => clearSageIntacctErrorField(policyID, CONST.SAGE_INTACCT_CONFIG.AUTO_SYNC_ENABLED)} + /> + {!!autoSync?.enabled && ( + + Navigation.navigate(ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_ACCOUNTING_METHOD.getRoute(policyID))} + /> + + )} + + ); +} + +SageIntacctAutoSyncPageBase.displayName = 'SageIntacctAutoSyncPageBase'; + +export default SageIntacctAutoSyncPageBase; diff --git a/src/pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPage.tsx b/src/pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPage.tsx index ebec7d9869d9..585b8809d83f 100644 --- a/src/pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPage.tsx +++ b/src/pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPage.tsx @@ -1,82 +1,10 @@ -import {CONST as COMMON_CONST} from 'expensify-common'; -import React, {useCallback} from 'react'; -import ConnectionLayout from '@components/ConnectionLayout'; -import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription'; -import OfflineWithFeedback from '@components/OfflineWithFeedback'; -import useLocalize from '@hooks/useLocalize'; -import useThemeStyles from '@hooks/useThemeStyles'; -import {updateQuickbooksDesktopAutoSync} from '@libs/actions/connections/QuickbooksDesktop'; -import {getLatestErrorField} from '@libs/ErrorUtils'; -import Navigation from '@libs/Navigation/Navigation'; -import {settingsPendingAction} from '@libs/PolicyUtils'; +import React from 'react'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; -import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; -import {clearQBDErrorField} from '@userActions/Policy/Policy'; -import CONST from '@src/CONST'; -import type {TranslationPaths} from '@src/languages/types'; -import ROUTES from '@src/ROUTES'; +import QuickbooksDesktopAutoSyncPageBase from './QuickbooksDesktopAutoSyncPageBase'; function QuickbooksDesktopAutoSyncPage({policy}: WithPolicyConnectionsProps) { - const styles = useThemeStyles(); - const {translate} = useLocalize(); - const policyID = policy?.id; - const config = policy?.connections?.quickbooksDesktop?.config; - const {autoSync, pendingFields} = config ?? {}; - const accountingMethod = config?.export?.accountingMethod ?? COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH; - const pendingAction = - settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.AUTO_SYNC], pendingFields) ?? settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.ACCOUNTING_METHOD], pendingFields); - - const goBack = useCallback(() => { - Navigation.goBack(ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_DESKTOP_ADVANCED.getRoute(policyID)); - }, [policyID]); - - return ( - - { - if (!policyID) { - return; - } - updateQuickbooksDesktopAutoSync(policyID, !autoSync?.enabled); - }} - pendingAction={pendingAction} - errors={getLatestErrorField(config ?? {}, CONST.QUICKBOOKS_DESKTOP_CONFIG.AUTO_SYNC_ENABLED)} - onCloseError={() => clearQBDErrorField(policyID, CONST.QUICKBOOKS_DESKTOP_CONFIG.AUTO_SYNC_ENABLED)} - /> - {!!autoSync?.enabled && ( - - Navigation.navigate(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_ACCOUNTING_METHOD.getRoute(policyID))} - /> - - )} - - ); + return ; } QuickbooksDesktopAutoSyncPage.displayName = 'QuickbooksDesktopAutoSyncPage'; diff --git a/src/pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPageBase.tsx b/src/pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPageBase.tsx new file mode 100644 index 000000000000..e16723081710 --- /dev/null +++ b/src/pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPageBase.tsx @@ -0,0 +1,90 @@ +import {CONST as COMMON_CONST} from 'expensify-common'; +import React, {useCallback} from 'react'; +import type {OnyxEntry} from 'react-native-onyx'; +import ConnectionLayout from '@components/ConnectionLayout'; +import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription'; +import OfflineWithFeedback from '@components/OfflineWithFeedback'; +import useLocalize from '@hooks/useLocalize'; +import useThemeStyles from '@hooks/useThemeStyles'; +import {updateQuickbooksDesktopAutoSync} from '@libs/actions/connections/QuickbooksDesktop'; +import {getLatestErrorField} from '@libs/ErrorUtils'; +import Navigation from '@libs/Navigation/Navigation'; +import {settingsPendingAction} from '@libs/PolicyUtils'; +import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow'; +import {clearQBDErrorField} from '@userActions/Policy/Policy'; +import CONST from '@src/CONST'; +import type {TranslationPaths} from '@src/languages/types'; +import ROUTES from '@src/ROUTES'; +import type {Route} from '@src/ROUTES'; +import type {Policy} from '@src/types/onyx'; + +type QuickbooksDesktopAutoSyncPageBaseParams = { + policy: OnyxEntry; + navigateBackTo?: Route; +}; + +function QuickbooksDesktopAutoSyncPageBase({policy, navigateBackTo}: QuickbooksDesktopAutoSyncPageBaseParams) { + const styles = useThemeStyles(); + const {translate} = useLocalize(); + const policyID = policy?.id; + const config = policy?.connections?.quickbooksDesktop?.config; + const {autoSync, pendingFields} = config ?? {}; + const accountingMethod = config?.export?.accountingMethod ?? COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH; + const pendingAction = + settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.AUTO_SYNC], pendingFields) ?? settingsPendingAction([CONST.QUICKBOOKS_DESKTOP_CONFIG.ACCOUNTING_METHOD], pendingFields); + + const goBack = useCallback(() => { + Navigation.goBack(navigateBackTo ?? ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_DESKTOP_ADVANCED.getRoute(policyID)); + }, [policyID, navigateBackTo]); + + return ( + + { + if (!policyID) { + return; + } + updateQuickbooksDesktopAutoSync(policyID, !autoSync?.enabled); + }} + pendingAction={pendingAction} + errors={getLatestErrorField(config ?? {}, CONST.QUICKBOOKS_DESKTOP_CONFIG.AUTO_SYNC_ENABLED)} + onCloseError={() => clearQBDErrorField(policyID, CONST.QUICKBOOKS_DESKTOP_CONFIG.AUTO_SYNC_ENABLED)} + /> + {!!autoSync?.enabled && ( + + Navigation.navigate(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_ACCOUNTING_METHOD.getRoute(policyID))} + /> + + )} + + ); +} + +QuickbooksDesktopAutoSyncPageBase.displayName = 'QuickbooksDesktopAutoSyncPageBase'; + +export default QuickbooksDesktopAutoSyncPageBase; diff --git a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx index 59bba9ff911c..c4ff0a88f29b 100644 --- a/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx +++ b/src/pages/workspace/accounting/reconciliation/CardReconciliationPage.tsx @@ -101,9 +101,9 @@ function CardReconciliationPage({policy, route}: CardReconciliationPageProps) { case CONST.POLICY.CONNECTIONS.ROUTE.NETSUITE: return `${environmentURL}/${ROUTES.POLICY_ACCOUNTING_NETSUITE_AUTO_SYNC.getRoute(policyID, backTo)}`; case CONST.POLICY.CONNECTIONS.ROUTE.SAGE_INTACCT: - return `${environmentURL}/${ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_ADVANCED.getRoute(policyID)}`; + return `${environmentURL}/${ROUTES.POLICY_ACCOUNTING_CARD_RECONCILIATION_SAGE_INTACCT_AUTO_SYNC.getRoute(policyID)}`; case CONST.POLICY.CONNECTIONS.ROUTE.QBD: - return `${environmentURL}/${ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_DESKTOP_ADVANCED.getRoute(policyID, backTo)}`; + return `${environmentURL}/${ROUTES.POLICY_ACCOUNTING_CARD_RECONCILIATION_QUICKBOOKS_DESKTOP_AUTO_SYNC.getRoute(policyID)}`; default: return ''; } diff --git a/src/pages/workspace/accounting/reconciliation/CardReconciliationQuickbooksDesktopAutoSyncPage.tsx b/src/pages/workspace/accounting/reconciliation/CardReconciliationQuickbooksDesktopAutoSyncPage.tsx new file mode 100644 index 000000000000..5d93d144f7a2 --- /dev/null +++ b/src/pages/workspace/accounting/reconciliation/CardReconciliationQuickbooksDesktopAutoSyncPage.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import QuickbooksDesktopAutoSyncPageBase from '@pages/workspace/accounting/qbd/advanced/QuickbooksDesktopAutoSyncPageBase'; +import withPolicyConnections from '@pages/workspace/withPolicyConnections'; +import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; +import CONST from '@src/CONST'; +import ROUTES from '@src/ROUTES'; + +function CardReconciliationQuickbooksDesktopAutoSyncPage({policy}: WithPolicyConnectionsProps) { + const policyID = policy?.id; + return ( + + ); +} + +CardReconciliationQuickbooksDesktopAutoSyncPage.displayName = 'CardReconciliationQuickbooksDesktopAutoSyncPage'; + +export default withPolicyConnections(CardReconciliationQuickbooksDesktopAutoSyncPage); diff --git a/src/pages/workspace/accounting/reconciliation/CardReconciliationSageIntacctAutoSyncPage.tsx b/src/pages/workspace/accounting/reconciliation/CardReconciliationSageIntacctAutoSyncPage.tsx new file mode 100644 index 000000000000..2893588ec8b1 --- /dev/null +++ b/src/pages/workspace/accounting/reconciliation/CardReconciliationSageIntacctAutoSyncPage.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import SageIntacctAutoSyncPageBase from '@pages/workspace/accounting/intacct/advanced/SageIntacctAutoSyncPageBase'; +import withPolicyConnections from '@pages/workspace/withPolicyConnections'; +import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; +import CONST from '@src/CONST'; +import ROUTES from '@src/ROUTES'; + +function CardReconciliationSageIntacctAutoSyncPage({policy}: WithPolicyConnectionsProps) { + const policyID = policy?.id; + return ( + + ); +} + +CardReconciliationSageIntacctAutoSyncPage.displayName = 'CardReconciliationSageIntacctAutoSyncPage'; + +export default withPolicyConnections(CardReconciliationSageIntacctAutoSyncPage);