1
1
// WordPress
2
- import { memo } from '@wordpress/element' ;
2
+ import { useState , useEffect , memo } from '@wordpress/element' ;
3
3
import { useSelect , useDispatch } from '@wordpress/data' ;
4
4
5
5
// Classes and functions
@@ -14,16 +14,32 @@ import { stepTheFork } from '../../steps/TheFork/step';
14
14
// Misc
15
15
import {
16
16
OnboardingEvent ,
17
+ sendOnboardingEvent ,
17
18
trackOnboardingEvent ,
18
19
} from '../../utils/analytics/hiive' ;
19
20
import { SITEGEN_FLOW } from '../../data/flows/constants' ;
20
21
import { store as nfdOnboardingStore } from '../../store' ;
21
22
import { ACTION_SITEGEN_FORK_OPTION_SELECTED } from '../../utils/analytics/hiive/constants' ;
22
23
import OrbAnimation from '../OrbAnimation' ;
24
+ import { pluginDashboardPage } from '../../../constants' ;
23
25
24
- const StartOptions = ( { questionnaire, oldFlow, largeOption, smallOptions } ) => {
26
+ const StartOptions = ( {
27
+ questionnaire,
28
+ oldFlow,
29
+ largeOption,
30
+ smallOptions,
31
+ experimentVersion,
32
+ } ) => {
25
33
const navigate = useNavigate ( ) ;
26
- const { brandConfig, hireProUrl, currentData, migrationUrl, canMigrateSite, allSteps } = useSelect ( ( select ) => {
34
+ const [ forkOptions , setForkOptions ] = useState ( [ ] ) ;
35
+ const {
36
+ brandConfig,
37
+ hireProUrl,
38
+ currentData,
39
+ migrationUrl,
40
+ canMigrateSite,
41
+ allSteps,
42
+ } = useSelect ( ( select ) => {
27
43
return {
28
44
brandConfig : select ( nfdOnboardingStore ) . getNewfoldBrandConfig ( ) ,
29
45
hireProUrl :
@@ -44,6 +60,18 @@ const StartOptions = ( { questionnaire, oldFlow, largeOption, smallOptions } ) =
44
60
setCurrentOnboardingData,
45
61
} = useDispatch ( nfdOnboardingStore ) ;
46
62
63
+ useEffect ( ( ) => {
64
+ if ( experimentVersion && experimentVersion === 1 ) {
65
+ // Remove Tutorial from Small Options incase of control
66
+ smallOptions . pop ( ) ;
67
+ } else {
68
+ // Remove DIY from Small Options incase of hidden
69
+ smallOptions . shift ( ) ;
70
+ }
71
+
72
+ setForkOptions ( smallOptions ) ;
73
+ } , [ experimentVersion ] ) ;
74
+
47
75
const switchFlow = ( newFlow ) => {
48
76
if ( ! validateFlow ( brandConfig , newFlow ) ) {
49
77
return false ;
@@ -105,6 +133,15 @@ const StartOptions = ( { questionnaire, oldFlow, largeOption, smallOptions } ) =
105
133
flowForEvent = 'MIGRATE' ;
106
134
handleMigration ( ) ;
107
135
break ;
136
+ case 'tutorial' :
137
+ sendOnboardingEvent (
138
+ new OnboardingEvent (
139
+ ACTION_SITEGEN_FORK_OPTION_SELECTED ,
140
+ 'TUTORIAL'
141
+ )
142
+ ) ;
143
+ window . location . replace ( pluginDashboardPage ) ;
144
+ return ;
108
145
}
109
146
110
147
if ( flowForEvent ) {
@@ -117,74 +154,79 @@ const StartOptions = ( { questionnaire, oldFlow, largeOption, smallOptions } ) =
117
154
}
118
155
} ;
119
156
return (
120
- < >
121
- < p className = "nfd-onboarding-sitegen-options__questionnaire" >
122
- { questionnaire }
123
- </ p >
124
- < div className = "nfd-onboarding-sitegen-options__option nfd-onboarding-sitegen-options__option--large"
125
- role = "button"
126
- tabIndex = { 0 }
127
- onClick = { ( ) => {
128
- selectFlow ( largeOption . flow ) ;
129
- } }
130
- onKeyDown = { ( ) => {
131
- {
132
- selectFlow ( largeOption . flow ) ;
133
- }
134
- } }
135
- data-flow = { largeOption . flow } >
136
- < h3 className = "nfd-onboarding-sitegen-options__option__heading__title nfd-onboarding-sitegen-options__option__heading__title--large" >
137
- < OrbAnimation height = { `80px` } />
138
- { largeOption . span && (
139
- < span className = "nfd-onboarding-sitegen-options__option__span" >
140
- { largeOption . span }
141
- </ span >
142
- ) }
143
- { largeOption . title }
144
- </ h3 >
145
- < p className = "nfd-onboarding-sitegen-options__option__heading__subtitle nfd-onboarding-sitegen-options__option__heading__subtitle--large" >
146
- { largeOption . text1 }
147
- </ p >
148
- < p className = "nfd-onboarding-sitegen-options__option__heading__subtitle nfd-onboarding-sitegen-options__option__heading__subtitle--large" >
149
- { largeOption . text2 }
157
+ experimentVersion &&
158
+ forkOptions && (
159
+ < >
160
+ < p className = "nfd-onboarding-sitegen-options__questionnaire" >
161
+ { questionnaire }
150
162
</ p >
151
-
152
- </ div >
153
- < div className = "nfd-onboarding-sitegen-options__container" >
154
-
155
- { smallOptions . map ( ( tab , idx ) => {
156
- return tab . show ? (
157
- < div
158
- className = "nfd-onboarding-sitegen-options__option"
159
- key = { idx }
160
- role = "button"
161
- tabIndex = { 0 }
162
- onClick = { ( ) => {
163
- selectFlow ( tab . flow ) ;
164
- } }
165
- onKeyDown = { ( ) => {
166
- {
163
+ < div
164
+ className = "nfd-onboarding-sitegen-options__option nfd-onboarding-sitegen-options__option--large"
165
+ role = "button"
166
+ tabIndex = { 0 }
167
+ onClick = { ( ) => {
168
+ selectFlow ( largeOption . flow ) ;
169
+ } }
170
+ onKeyDown = { ( ) => {
171
+ {
172
+ selectFlow ( largeOption . flow ) ;
173
+ }
174
+ } }
175
+ data-flow = { largeOption . flow }
176
+ >
177
+ < h3 className = "nfd-onboarding-sitegen-options__option__heading__title nfd-onboarding-sitegen-options__option__heading__title--large" >
178
+ < OrbAnimation height = { `80px` } />
179
+ { largeOption . span && (
180
+ < span className = "nfd-onboarding-sitegen-options__option__span" >
181
+ { largeOption . span }
182
+ </ span >
183
+ ) }
184
+ { largeOption . title }
185
+ </ h3 >
186
+ < p className = "nfd-onboarding-sitegen-options__option__heading__subtitle nfd-onboarding-sitegen-options__option__heading__subtitle--large" >
187
+ { largeOption . text1 }
188
+ </ p >
189
+ < p className = "nfd-onboarding-sitegen-options__option__heading__subtitle nfd-onboarding-sitegen-options__option__heading__subtitle--large" >
190
+ { largeOption . text2 }
191
+ </ p >
192
+ </ div >
193
+ < div className = "nfd-onboarding-sitegen-options__container" >
194
+ { forkOptions . map ( ( tab , idx ) => {
195
+ return tab . show ? (
196
+ < div
197
+ className = "nfd-onboarding-sitegen-options__option"
198
+ key = { idx }
199
+ role = "button"
200
+ tabIndex = { 0 }
201
+ onClick = { ( ) => {
167
202
selectFlow ( tab . flow ) ;
168
- }
169
- } }
170
- data-flow = { tab . flow }
171
- >
172
- < h3 className = "nfd-onboarding-sitegen-options__option__heading__title" >
173
- { tab . span && (
174
- < span className = "nfd-onboarding-sitegen-options__option__span" >
175
- { tab . span }
176
- </ span >
177
- ) }
178
- { tab . title }
179
- </ h3 >
180
- < p className = "nfd-onboarding-sitegen-options__option__heading__subtitle" >
181
- { tab . subtitle }
182
- </ p >
183
- </ div >
184
- ) : < > </ > ;
185
- } ) }
186
- </ div >
187
- </ >
203
+ } }
204
+ onKeyDown = { ( ) => {
205
+ {
206
+ selectFlow ( tab . flow ) ;
207
+ }
208
+ } }
209
+ data-flow = { tab . flow }
210
+ >
211
+ < h3 className = "nfd-onboarding-sitegen-options__option__heading__title" >
212
+ { tab . span && (
213
+ < span className = "nfd-onboarding-sitegen-options__option__span" >
214
+ { tab . span }
215
+ </ span >
216
+ ) }
217
+ { tab . title }
218
+ </ h3 >
219
+ < p className = "nfd-onboarding-sitegen-options__option__heading__subtitle" >
220
+ { tab . subtitle }
221
+ </ p >
222
+ </ div >
223
+ ) : (
224
+ < > </ >
225
+ ) ;
226
+ } ) }
227
+ </ div >
228
+ </ >
229
+ )
188
230
) ;
189
231
} ;
190
232
0 commit comments