@@ -57,17 +57,30 @@ export const businessLogin = () => {
57
57
*/
58
58
export function checkOnboarding ( resp ) {
59
59
if ( resp ?. data . length === 0 ) {
60
- return false ;
60
+ return "/onboard/" ;
61
61
}
62
- const data = resp ?. data . filter (
62
+
63
+ const onboardingChecklistTrait = resp ?. data . filter (
63
64
( item ) => item . traitId === "onboarding_checklist"
64
- ) [ 0 ] . traits . data [ 0 ] . profile_completed ;
65
- if ( data . status === "completed" ) {
65
+ ) [ 0 ] . traits ;
66
+
67
+ // Check if onboarding flow needs to be skipped
68
+ if (
69
+ onboardingChecklistTrait . data [ 0 ] . skip_onboarding &&
70
+ onboardingChecklistTrait . data [ 0 ] . skip_onboarding . value === true
71
+ ) {
72
+ return false ;
73
+ }
74
+
75
+ const profileCompletedData =
76
+ onboardingChecklistTrait . data [ 0 ] . profile_completed ;
77
+
78
+ if ( profileCompletedData . status === "completed" ) {
66
79
return false ;
67
80
}
68
81
69
- for ( const item in data . metadata ) {
70
- if ( data . metadata [ item ] ) {
82
+ for ( const item in profileCompletedData . metadata ) {
83
+ if ( profileCompletedData . metadata [ item ] ) {
71
84
return false ;
72
85
}
73
86
}
@@ -78,11 +91,12 @@ export function checkOnboarding(resp) {
78
91
"/onboard/payments-setup" : [ ] ,
79
92
"/onboard/build-my-profile" : [ "bio" , "work" , "education" , "language" ] ,
80
93
} ;
81
- if ( data . status === "pending_at_user" ) {
82
- const flags = Object . keys ( data . metadata ) ;
94
+
95
+ if ( profileCompletedData . status === "pending_at_user" ) {
96
+ const flags = Object . keys ( profileCompletedData . metadata ) ;
83
97
for ( const step of Object . keys ( steps ) ) {
84
98
for ( const flag of steps [ step ] ) {
85
- if ( flags . indexOf ( flag ) >= 0 && ! data . metadata [ flag ] ) {
99
+ if ( flags . indexOf ( flag ) >= 0 && ! profileCompletedData . metadata [ flag ] ) {
86
100
return step ;
87
101
}
88
102
}
0 commit comments