1+ import { useRoute } from '@react-navigation/native' ;
12import React from 'react' ;
23import ConnectionLayout from '@components/ConnectionLayout' ;
34import useLocalize from '@hooks/useLocalize' ;
45import useThemeStyles from '@hooks/useThemeStyles' ;
5- import * as QuickbooksDesktop from '@libs/actions/connections/QuickbooksDesktop' ;
6- import * as ErrorUtils from '@libs/ErrorUtils' ;
6+ import { updateQuickbooksDesktopAutoSync , updateQuickbooksDesktopShouldAutoCreateVendor } from '@libs/actions/connections/QuickbooksDesktop' ;
7+ import { getLatestErrorField } from '@libs/ErrorUtils' ;
78import Navigation from '@libs/Navigation/Navigation' ;
9+ import type { PlatformStackRouteProp } from '@libs/Navigation/PlatformStackNavigation/types' ;
10+ import type { SettingsNavigatorParamList } from '@libs/Navigation/types' ;
811import { settingsPendingAction } from '@libs/PolicyUtils' ;
912import type { WithPolicyConnectionsProps } from '@pages/workspace/withPolicyConnections' ;
1013import withPolicyConnections from '@pages/workspace/withPolicyConnections' ;
1114import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow' ;
1215import { clearQBDErrorField } from '@userActions/Policy/Policy' ;
1316import CONST from '@src/CONST' ;
1417import ROUTES from '@src/ROUTES' ;
18+ import type SCREENS from '@src/SCREENS' ;
1519
1620function QuickbooksDesktopAdvancedPage ( { policy} : WithPolicyConnectionsProps ) {
1721 const styles = useThemeStyles ( ) ;
1822 const { translate} = useLocalize ( ) ;
19- const policyID = policy ?. id ?? '-1' ;
23+ const policyID = policy ?. id ;
2024 const qbdConfig = policy ?. connections ?. quickbooksDesktop ?. config ;
25+ const route = useRoute < PlatformStackRouteProp < SettingsNavigatorParamList , typeof SCREENS . WORKSPACE . ACCOUNTING . QUICKBOOKS_DESKTOP_ADVANCED > > ( ) ;
2126
2227 const qbdToggleSettingItems = [
2328 {
2429 title : translate ( 'workspace.accounting.autoSync' ) ,
2530 subtitle : translate ( 'workspace.qbd.advancedConfig.autoSyncDescription' ) ,
2631 switchAccessibilityLabel : translate ( 'workspace.qbd.advancedConfig.autoSyncDescription' ) ,
2732 isActive : ! ! qbdConfig ?. autoSync ?. enabled ,
28- onToggle : ( isOn : boolean ) => QuickbooksDesktop . updateQuickbooksDesktopAutoSync ( policyID , isOn ) ,
33+ onToggle : ( isOn : boolean ) => {
34+ if ( ! policyID ) {
35+ return ;
36+ }
37+ updateQuickbooksDesktopAutoSync ( policyID , isOn ) ;
38+ } ,
2939 subscribedSetting : CONST . QUICKBOOKS_DESKTOP_CONFIG . AUTO_SYNC ,
30- errors : ErrorUtils . getLatestErrorField ( qbdConfig , CONST . QUICKBOOKS_DESKTOP_CONFIG . AUTO_SYNC ) ,
40+ errors : getLatestErrorField ( qbdConfig , CONST . QUICKBOOKS_DESKTOP_CONFIG . AUTO_SYNC ) ,
3141 pendingAction : settingsPendingAction ( [ CONST . QUICKBOOKS_DESKTOP_CONFIG . AUTO_SYNC ] , qbdConfig ?. pendingFields ) ,
3242 } ,
3343 {
@@ -36,10 +46,10 @@ function QuickbooksDesktopAdvancedPage({policy}: WithPolicyConnectionsProps) {
3646 switchAccessibilityLabel : translate ( 'workspace.qbd.advancedConfig.createEntitiesDescription' ) ,
3747 isActive : ! ! qbdConfig ?. shouldAutoCreateVendor ,
3848 onToggle : ( isOn : boolean ) => {
39- QuickbooksDesktop . updateQuickbooksDesktopShouldAutoCreateVendor ( policyID , isOn ) ;
49+ updateQuickbooksDesktopShouldAutoCreateVendor ( policyID , isOn ) ;
4050 } ,
4151 subscribedSetting : CONST . QUICKBOOKS_DESKTOP_CONFIG . SHOULD_AUTO_CREATE_VENDOR ,
42- errors : ErrorUtils . getLatestErrorField ( qbdConfig , CONST . QUICKBOOKS_DESKTOP_CONFIG . SHOULD_AUTO_CREATE_VENDOR ) ,
52+ errors : getLatestErrorField ( qbdConfig , CONST . QUICKBOOKS_DESKTOP_CONFIG . SHOULD_AUTO_CREATE_VENDOR ) ,
4353 pendingAction : settingsPendingAction ( [ CONST . QUICKBOOKS_DESKTOP_CONFIG . SHOULD_AUTO_CREATE_VENDOR ] , qbdConfig ?. pendingFields ) ,
4454 } ,
4555 ] ;
@@ -53,7 +63,7 @@ function QuickbooksDesktopAdvancedPage({policy}: WithPolicyConnectionsProps) {
5363 featureName = { CONST . POLICY . MORE_FEATURES . ARE_CONNECTIONS_ENABLED }
5464 contentContainerStyle = { [ styles . pb2 , styles . ph5 ] }
5565 connectionName = { CONST . POLICY . CONNECTIONS . NAME . QBD }
56- onBackButtonPress = { ( ) => Navigation . goBack ( ROUTES . POLICY_ACCOUNTING . getRoute ( policyID ) ) }
66+ onBackButtonPress = { ( ) => Navigation . goBack ( route . params ?. backTo ?? ROUTES . POLICY_ACCOUNTING . getRoute ( policyID ) ) }
5767 >
5868 { qbdToggleSettingItems . map ( ( item ) => (
5969 < ToggleSettingOptionRow
0 commit comments