@@ -8,6 +8,7 @@ import useNetwork from '@hooks/useNetwork';
8
8
import useThemeStyles from '@hooks/useThemeStyles' ;
9
9
import Navigation from '@libs/Navigation/Navigation' ;
10
10
import type { SettingsNavigatorParamList } from '@libs/Navigation/types' ;
11
+ import { isControlPolicy } from '@libs/PolicyUtils' ;
11
12
import NotFoundPage from '@pages/ErrorPage/NotFoundPage' ;
12
13
import CONST from '@src/CONST' ;
13
14
import * as Policy from '@src/libs/actions/Policy/Policy' ;
@@ -26,15 +27,25 @@ function WorkspaceUpgradePage({route}: WorkspaceUpgradePageProps) {
26
27
const [ policy ] = useOnyx ( `policy_${ policyID } ` ) ;
27
28
const { isOffline} = useNetwork ( ) ;
28
29
30
+ const isUpgraded = React . useMemo ( ( ) => isControlPolicy ( policy ) , [ policy ] ) ;
31
+
29
32
if ( ! feature || ! policy ) {
30
33
return < NotFoundPage /> ;
31
34
}
32
35
33
36
const upgradeToCorporate = ( ) => {
34
- Policy . upgradeToCorporate ( policy . id , feature . id ) ;
37
+ Policy . upgradeToCorporate ( policy . id , feature . name ) ;
35
38
} ;
36
39
37
- const isUpgraded = policy . type === CONST . POLICY . TYPE . CORPORATE ;
40
+ const confirmUpgrade = ( ) => {
41
+ switch ( feature . id ) {
42
+ case CONST . UPGRADE_FEATURE_INTRO_MAPPING . reportFields . id :
43
+ Policy . enablePolicyReportFields ( policyID , true ) ;
44
+ return Navigation . navigate ( ROUTES . WORKSPACE_MORE_FEATURES . getRoute ( policyID ) , CONST . NAVIGATION . TYPE . UP ) ;
45
+ default :
46
+ return route . params . backTo ? Navigation . navigate ( route . params . backTo , CONST . NAVIGATION . TYPE . UP ) : Navigation . goBack ( ) ;
47
+ }
48
+ } ;
38
49
39
50
return (
40
51
< ScreenWrapper
@@ -44,11 +55,11 @@ function WorkspaceUpgradePage({route}: WorkspaceUpgradePageProps) {
44
55
>
45
56
< HeaderWithBackButton
46
57
title = { translate ( 'common.upgrade' ) }
47
- onBackButtonPress = { ( ) => Navigation . goBack ( route . params . backTo ?? ROUTES . WORKSPACE_PROFILE . getRoute ( policyID ) ) }
58
+ onBackButtonPress = { ( ) => Navigation . goBack ( ) }
48
59
/>
49
60
{ isUpgraded && (
50
61
< UpgradeConfirmation
51
- policyID = { policy . id }
62
+ onConfirmUpgrade = { confirmUpgrade }
52
63
policyName = { policy . name }
53
64
/>
54
65
) }
0 commit comments