@@ -47,6 +47,8 @@ import moment from "moment";
47
47
import _ from "lodash" ;
48
48
import { createTraits , updateTraits } from "services/traits" ;
49
49
import { updateMemberData } from "services/memberData" ;
50
+ import { getCookie } from "utils/" ;
51
+ import { updateOnboardingWizardTraits } from "services/onboardingChecklist" ;
50
52
51
53
const formatDate = ( date ) => {
52
54
let ret = new Date (
@@ -61,6 +63,9 @@ const BuildMyProfile = () => {
61
63
const [ isLoading , setIsLoading ] = useState ( false ) ;
62
64
const [ myProfileData , setMyProfileData ] = useState ( { } ) ;
63
65
const [ bio , setBio ] = useState ( "" ) ;
66
+ const [ redirectUrl , setRedirectUrl ] = useState (
67
+ config . TOPCODER_COMMUNITY_WEBSITE_URL + "/home"
68
+ ) ;
64
69
65
70
// form states
66
71
const [ formData , setFormData ] = useState ( {
@@ -189,6 +194,7 @@ const BuildMyProfile = () => {
189
194
// Get Member data from redux (firstName, lastName, handle, photoURL) and store it on myProfileData
190
195
useEffect ( ( ) => {
191
196
if ( ! authUser || ! authUser . handle ) return ;
197
+
192
198
getAuthUserProfile ( )
193
199
. then ( ( result ) => {
194
200
setMyProfileData ( result ) ;
@@ -209,6 +215,9 @@ const BuildMyProfile = () => {
209
215
// find datas we need
210
216
// get traits values
211
217
let traits = result ?. data ;
218
+ const onboardingChecklist = traits . find (
219
+ ( t ) => t . traitId === "onboarding_checklist"
220
+ ) ;
212
221
let basicInfo = traits . find ( ( t ) => t . traitId === "basic_info" ) ;
213
222
let workExp = traits . find ( ( t ) => t . traitId === "work" ) ;
214
223
let educationExp = traits . find ( ( t ) => t . traitId === "education" ) ;
@@ -218,6 +227,24 @@ const BuildMyProfile = () => {
218
227
let educationExpValue = educationExp ?. traits ?. data ;
219
228
let languagesExpValue = languagesExp ?. traits ?. data ;
220
229
230
+ if (
231
+ onboardingChecklist . traits . data . length > 0 &&
232
+ onboardingChecklist . traits . data [ 0 ] . onboarding_wizard ?. status !==
233
+ "completed"
234
+ ) {
235
+ onboardingChecklist . traits . data [ 0 ] . onboarding_wizard . status =
236
+ "completed" ;
237
+ const url = getCookie ( "returnAfterOnboard" ) ;
238
+ if ( url != null ) {
239
+ setRedirectUrl ( url ) ;
240
+ }
241
+ updateOnboardingWizardTraits (
242
+ authUser . handle ,
243
+ onboardingChecklist . traits . data ,
244
+ false
245
+ ) ;
246
+ }
247
+
221
248
// fill title and bio to state
222
249
if ( basicInfoValue ) {
223
250
// Using shortBio as title has to do with v3 using this mapping
@@ -535,7 +562,7 @@ const BuildMyProfile = () => {
535
562
}
536
563
537
564
setIsLoading ( false ) ;
538
- window . location . href = config . TOPCODER_COMMUNITY_WEBSITE_URL + "/home" ;
565
+ window . location . href = redirectUrl ;
539
566
} ;
540
567
541
568
return (
@@ -1018,11 +1045,7 @@ const BuildMyProfile = () => {
1018
1045
</ Button >
1019
1046
</ Link >
1020
1047
< a
1021
- href = {
1022
- errors && canSubmit ( )
1023
- ? config . TOPCODER_COMMUNITY_WEBSITE_URL + "/home"
1024
- : "#"
1025
- }
1048
+ href = { errors && canSubmit ( ) ? redirectUrl : "#" }
1026
1049
onClick = { ( e ) => handleSubmit ( e ) }
1027
1050
>
1028
1051
< Button
0 commit comments