1
+ import { useRoute } from '@react-navigation/native' ;
1
2
import React from 'react' ;
2
3
import ConnectionLayout from '@components/ConnectionLayout' ;
3
4
import useLocalize from '@hooks/useLocalize' ;
4
5
import 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' ;
7
8
import Navigation from '@libs/Navigation/Navigation' ;
9
+ import type { PlatformStackRouteProp } from '@libs/Navigation/PlatformStackNavigation/types' ;
10
+ import type { SettingsNavigatorParamList } from '@libs/Navigation/types' ;
8
11
import { settingsPendingAction } from '@libs/PolicyUtils' ;
9
12
import type { WithPolicyConnectionsProps } from '@pages/workspace/withPolicyConnections' ;
10
13
import withPolicyConnections from '@pages/workspace/withPolicyConnections' ;
11
14
import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow' ;
12
15
import { clearQBDErrorField } from '@userActions/Policy/Policy' ;
13
16
import CONST from '@src/CONST' ;
14
17
import ROUTES from '@src/ROUTES' ;
18
+ import type SCREENS from '@src/SCREENS' ;
15
19
16
20
function QuickbooksDesktopAdvancedPage ( { policy} : WithPolicyConnectionsProps ) {
17
21
const styles = useThemeStyles ( ) ;
18
22
const { translate} = useLocalize ( ) ;
19
- const policyID = policy ?. id ?? '-1' ;
23
+ const policyID = policy ?. id ;
20
24
const qbdConfig = policy ?. connections ?. quickbooksDesktop ?. config ;
25
+ const route = useRoute < PlatformStackRouteProp < SettingsNavigatorParamList , typeof SCREENS . WORKSPACE . ACCOUNTING . QUICKBOOKS_DESKTOP_ADVANCED > > ( ) ;
21
26
22
27
const qbdToggleSettingItems = [
23
28
{
24
29
title : translate ( 'workspace.accounting.autoSync' ) ,
25
30
subtitle : translate ( 'workspace.qbd.advancedConfig.autoSyncDescription' ) ,
26
31
switchAccessibilityLabel : translate ( 'workspace.qbd.advancedConfig.autoSyncDescription' ) ,
27
32
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
+ } ,
29
39
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 ) ,
31
41
pendingAction : settingsPendingAction ( [ CONST . QUICKBOOKS_DESKTOP_CONFIG . AUTO_SYNC ] , qbdConfig ?. pendingFields ) ,
32
42
} ,
33
43
{
@@ -36,10 +46,10 @@ function QuickbooksDesktopAdvancedPage({policy}: WithPolicyConnectionsProps) {
36
46
switchAccessibilityLabel : translate ( 'workspace.qbd.advancedConfig.createEntitiesDescription' ) ,
37
47
isActive : ! ! qbdConfig ?. shouldAutoCreateVendor ,
38
48
onToggle : ( isOn : boolean ) => {
39
- QuickbooksDesktop . updateQuickbooksDesktopShouldAutoCreateVendor ( policyID , isOn ) ;
49
+ updateQuickbooksDesktopShouldAutoCreateVendor ( policyID , isOn ) ;
40
50
} ,
41
51
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 ) ,
43
53
pendingAction : settingsPendingAction ( [ CONST . QUICKBOOKS_DESKTOP_CONFIG . SHOULD_AUTO_CREATE_VENDOR ] , qbdConfig ?. pendingFields ) ,
44
54
} ,
45
55
] ;
@@ -53,7 +63,7 @@ function QuickbooksDesktopAdvancedPage({policy}: WithPolicyConnectionsProps) {
53
63
featureName = { CONST . POLICY . MORE_FEATURES . ARE_CONNECTIONS_ENABLED }
54
64
contentContainerStyle = { [ styles . pb2 , styles . ph5 ] }
55
65
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 ) ) }
57
67
>
58
68
{ qbdToggleSettingItems . map ( ( item ) => (
59
69
< ToggleSettingOptionRow
0 commit comments