@@ -32,6 +32,7 @@ function BaseOnboardingEmployees({shouldUseNativeStyles, route}: BaseOnboardingE
32
32
const [ onboardingCompanySize ] = useOnyx ( ONYXKEYS . ONBOARDING_COMPANY_SIZE ) ;
33
33
const [ onboardingPurposeSelected ] = useOnyx ( ONYXKEYS . ONBOARDING_PURPOSE_SELECTED ) ;
34
34
const [ onboardingPolicyID ] = useOnyx ( ONYXKEYS . ONBOARDING_POLICY_ID ) ;
35
+ const [ onboardingAdminsChatReportID ] = useOnyx ( ONYXKEYS . ONBOARDING_ADMINS_CHAT_REPORT_ID ) ;
35
36
const [ allPolicies ] = useOnyx ( ONYXKEYS . COLLECTION . POLICY ) ;
36
37
37
38
const paidGroupPolicy = Object . values ( allPolicies ?? { } ) . find ( PolicyUtils . isPaidGroupPolicy ) ;
@@ -70,9 +71,15 @@ function BaseOnboardingEmployees({shouldUseNativeStyles, route}: BaseOnboardingE
70
71
}
71
72
Welcome . setOnboardingCompanySize ( selectedCompanySize ) ;
72
73
73
- const { adminsChatReportID , policyID } = Policy . createWorkspace ( undefined , true , '' , Policy . generatePolicyID ( ) , CONST . ONBOARDING_CHOICES . MANAGE_TEAM ) ;
74
+ const shouldCreateWorkspace = ! onboardingPolicyID && ! paidGroupPolicy ;
74
75
75
- if ( ! onboardingPolicyID && ! paidGroupPolicy ) {
76
+ // We need `adminsChatReportID` for `Report.completeOnboarding`, but at the same time, we don't want to call `Policy.createWorkspace` more than once.
77
+ // If we have already created a workspace, we want to reuse the `onboardingAdminsChatReportID` and `onboardingPolicyID`.
78
+ const { adminsChatReportID, policyID} = shouldCreateWorkspace
79
+ ? Policy . createWorkspace ( undefined , true , '' , Policy . generatePolicyID ( ) , CONST . ONBOARDING_CHOICES . MANAGE_TEAM )
80
+ : { adminsChatReportID : onboardingAdminsChatReportID , policyID : onboardingPolicyID } ;
81
+
82
+ if ( shouldCreateWorkspace ) {
76
83
Welcome . setOnboardingAdminsChatReportID ( adminsChatReportID ) ;
77
84
Welcome . setOnboardingPolicyID ( policyID ) ;
78
85
}
0 commit comments