@@ -7,30 +7,26 @@ import type {ListItem} from '@components/SelectionList/types';
77import SelectionScreen from '@components/SelectionScreen' ;
88import type { SelectorType } from '@components/SelectionScreen' ;
99import Text from '@components/Text' ;
10+ import useDynamicBackPath from '@hooks/useDynamicBackPath' ;
1011import useLocalize from '@hooks/useLocalize' ;
1112import useThemeStyles from '@hooks/useThemeStyles' ;
1213import { updateQuickbooksOnlineAccountingMethod } from '@libs/actions/connections/QuickbooksOnline' ;
14+ import Navigation from '@libs/Navigation/Navigation' ;
1315import { settingsPendingAction } from '@libs/PolicyUtils' ;
14- import Navigation from '@navigation/Navigation' ;
1516import type { WithPolicyConnectionsProps } from '@pages/workspace/withPolicyConnections' ;
1617import withPolicyConnections from '@pages/workspace/withPolicyConnections' ;
1718import CONST from '@src/CONST' ;
1819import type { TranslationPaths } from '@src/languages/types' ;
19- import ROUTES from '@src/ROUTES' ;
20- import type { Route } from '@src/ROUTES' ;
20+ import { DYNAMIC_ROUTES } from '@src/ROUTES' ;
2121
2222type MenuListItem = ListItem & {
2323 value : ValueOf < typeof COMMON_CONST . INTEGRATIONS . ACCOUNTING_METHOD > ;
2424} ;
2525
26- type QuickbooksAccountingMethodPageRouteParams = {
27- backTo ?: Route ;
28- } ;
29-
30- function QuickbooksAccountingMethodPage ( { policy, route} : WithPolicyConnectionsProps ) {
26+ function DynamicQuickbooksOnlineAccountingMethodPage ( { policy} : WithPolicyConnectionsProps ) {
3127 const { translate} = useLocalize ( ) ;
3228 const policyID = policy ?. id ;
33- const { backTo } = route . params as QuickbooksAccountingMethodPageRouteParams ;
29+ const backPath = useDynamicBackPath ( DYNAMIC_ROUTES . WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_ACCOUNTING_METHOD . path ) ;
3430 const styles = useThemeStyles ( ) ;
3531 const config = policy ?. connections ?. quickbooksOnline ?. config ;
3632 const accountingMethod = config ?. accountingMethod ?? COMMON_CONST . INTEGRATIONS . ACCOUNTING_METHOD . CASH ;
@@ -54,19 +50,23 @@ function QuickbooksAccountingMethodPage({policy, route}: WithPolicyConnectionsPr
5450 [ translate , styles . pb5 , styles . ph5 ] ,
5551 ) ;
5652
53+ const goBack = useCallback ( ( ) => {
54+ Navigation . goBack ( backPath ) ;
55+ } , [ backPath ] ) ;
56+
5757 const selectExpenseReportApprovalLevel = useCallback (
5858 ( row : MenuListItem ) => {
5959 if ( row . value !== config ?. accountingMethod ) {
6060 updateQuickbooksOnlineAccountingMethod ( policyID , row . value , config ?. accountingMethod ?? COMMON_CONST . INTEGRATIONS . ACCOUNTING_METHOD . CASH ) ;
6161 }
62- Navigation . goBack ( ROUTES . WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_AUTO_SYNC . getRoute ( policyID , backTo ) ) ;
62+ goBack ( ) ;
6363 } ,
64- [ config ?. accountingMethod , policyID , backTo ] ,
64+ [ config ?. accountingMethod , policyID , goBack ] ,
6565 ) ;
6666
6767 return (
6868 < SelectionScreen
69- displayName = "QuickbooksAccountingMethodPage "
69+ displayName = "DynamicQuickbooksOnlineAccountingMethodPage "
7070 headerTitleAlreadyTranslated = { translate ( 'workspace.qbo.accountingMethods.label' ) }
7171 headerContent = { headerContent }
7272 data = { data }
@@ -76,12 +76,12 @@ function QuickbooksAccountingMethodPage({policy, route}: WithPolicyConnectionsPr
7676 policyID = { policyID }
7777 accessVariants = { [ CONST . POLICY . ACCESS_VARIANTS . ADMIN ] }
7878 featureName = { CONST . POLICY . MORE_FEATURES . ARE_CONNECTIONS_ENABLED }
79- onBackButtonPress = { ( ) => Navigation . goBack ( ROUTES . WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_AUTO_SYNC . getRoute ( policyID , backTo ) ) }
79+ onBackButtonPress = { goBack }
8080 connectionName = { CONST . POLICY . CONNECTIONS . NAME . QBO }
8181 pendingAction = { pendingAction }
8282 shouldBeBlocked = { ! config ?. autoSync ?. enabled }
8383 />
8484 ) ;
8585}
8686
87- export default withPolicyConnections ( QuickbooksAccountingMethodPage ) ;
87+ export default withPolicyConnections ( DynamicQuickbooksOnlineAccountingMethodPage ) ;
0 commit comments