@@ -15,120 +15,144 @@ export const tutorialMachine = Machine<
15
15
{
16
16
id : 'tutorial' ,
17
17
context : initialContext ,
18
- initial : 'initial ' ,
18
+ initial : 'Start ' ,
19
19
states : {
20
- initial : {
21
- onEntry : 'start' ,
22
- on : {
23
- CONTINUE : 'continue' ,
24
- NEW : 'new' ,
25
- } ,
26
- } ,
27
- new : {
28
- on : {
29
- TUTORIAL_START : 'loading' ,
30
- } ,
31
- } ,
32
- continue : {
33
- on : {
34
- TUTORIAL_START : 'loading' ,
35
- } ,
36
- } ,
37
- loading : {
38
- on : {
39
- TUTORIAL_LOADED : [
40
- {
41
- target : 'summary' ,
42
- cond : 'hasNoProgress' ,
43
- } ,
44
- {
45
- target : 'level' ,
46
- cond : 'hasNoLevelProgress' ,
47
- } ,
48
- {
49
- target : 'stage' ,
50
- } ,
51
- ] ,
52
- } ,
53
- } ,
54
- summary : {
55
- on : {
56
- NEXT : 'level' ,
57
- } ,
58
- } ,
59
- level : {
60
- onEntry : [ 'loadLevel' ] ,
61
- on : {
62
- NEXT : 'stage' ,
63
- BACK : 'summary' ,
64
- } ,
65
- } ,
66
- stage : {
67
- onEntry : [ 'loadStage' ] ,
68
- initial : 'stageNormal' ,
20
+ Start : {
69
21
states : {
70
- stageNormal : {
22
+ Initial : {
23
+ onEntry : 'start' ,
71
24
on : {
72
- TEST_RUN : 'testRunning' ,
73
- STEP_SOLUTION_LOAD : {
74
- actions : [ 'callSolution' ] ,
75
- } ,
25
+ CONTINUE : 'ContinueTutorial' ,
26
+ NEW : 'NewTutorial' ,
76
27
} ,
77
28
} ,
78
- testRunning : {
79
- on : {
80
- TEST_SUCCESS : [
81
- {
82
- target : 'complete' ,
83
- cond : 'tasksComplete ' ,
29
+ NewTutorial : {
30
+ initial : 'SelectTutorial' ,
31
+ states : {
32
+ SelectTutorial : {
33
+ on : {
34
+ TUTORIAL_START : 'InitializeTutorial ' ,
84
35
} ,
85
- {
86
- target : 'testPass' ,
87
- } ,
88
- ] ,
89
- TEST_FAILURE : 'testFail' ,
90
- } ,
36
+ } ,
37
+ InitializeTutorial : {
38
+ on : {
39
+ TUTORIAL_LOADED : 'Tutorial'
40
+ }
41
+ } ,
42
+ }
43
+
44
+ } ,
45
+ ContinueTutorial : {
46
+ onEntry : 'loadTutorial' ,
47
+ on : {
48
+ TUTORIAL_START : {
49
+ target : 'Tutorial' ,
50
+ }
51
+ }
91
52
} ,
92
- testPass : {
93
- onEntry : [ 'stepComplete' ] ,
53
+ }
54
+ } ,
55
+ Tutorial : {
56
+ initial : 'Initialize' ,
57
+ states : {
58
+ Initialize : {
94
59
on : {
95
- NEXT : [
60
+ TUTORIAL_LOADED : [
61
+ {
62
+ target : 'Summary' ,
63
+ cond : 'hasNoProgress' ,
64
+ } ,
96
65
{
97
- target : 'stageNormal ' ,
98
- cond : 'hasNextStep ' ,
66
+ target : 'Level ' ,
67
+ cond : 'hasNoLevelProgress ' ,
99
68
} ,
100
69
{
101
- target : 'stageComplete ' ,
70
+ target : 'Stage ' ,
102
71
} ,
103
72
] ,
104
73
} ,
105
74
} ,
106
- testFail : {
75
+
76
+ Summary : {
107
77
on : {
108
- RETURN : 'stageNormal ' ,
78
+ NEXT : 'Level ' ,
109
79
} ,
110
80
} ,
111
- stageComplete : {
81
+ Level : {
82
+ onEntry : [ 'loadLevel' ] ,
112
83
on : {
113
- NEXT : [
114
- {
115
- target : 'stage' ,
116
- cond : 'hasNextStage' ,
84
+ NEXT : 'Stage' ,
85
+ BACK : 'Summary' ,
86
+ } ,
87
+ } ,
88
+ Stage : {
89
+ onEntry : [ 'loadStage' ] ,
90
+ initial : 'StageNormal' ,
91
+ states : {
92
+ StageNormal : {
93
+ on : {
94
+ TEST_RUN : 'TestRunning' ,
95
+ STEP_SOLUTION_LOAD : {
96
+ actions : [ 'callSolution' ] ,
97
+ } ,
117
98
} ,
118
- {
119
- target : 'level' ,
120
- cond : 'hasNextLevel' ,
99
+ } ,
100
+ TestRunning : {
101
+ on : {
102
+ TEST_SUCCESS : [
103
+ {
104
+ target : 'StageComplete' ,
105
+ cond : 'tasksComplete' ,
106
+ } ,
107
+ {
108
+ target : 'TestPass' ,
109
+ } ,
110
+ ] ,
111
+ TEST_FAILURE : 'TestFail' ,
121
112
} ,
122
- {
123
- target : 'complete' ,
113
+ } ,
114
+ TestPass : {
115
+ onEntry : [ 'stepComplete' ] ,
116
+ on : {
117
+ NEXT : [
118
+ {
119
+ target : 'StageNormal' ,
120
+ cond : 'hasNextStep' ,
121
+ } ,
122
+ {
123
+ target : 'StageComplete' ,
124
+ } ,
125
+ ] ,
124
126
} ,
125
- ] ,
127
+ } ,
128
+ TestFail : {
129
+ on : {
130
+ RETURN : 'StageNormal' ,
131
+ } ,
132
+ } ,
133
+ StageComplete : {
134
+ on : {
135
+ NEXT : [
136
+ {
137
+ target : 'Stage' ,
138
+ cond : 'hasNextStage' ,
139
+ } ,
140
+ {
141
+ target : 'Level' ,
142
+ cond : 'hasNextLevel' ,
143
+ } ,
144
+ {
145
+ target : 'EndTutorial' ,
146
+ } ,
147
+ ] ,
148
+ } ,
149
+ } ,
126
150
} ,
127
151
} ,
128
- } ,
129
- } ,
130
- complete : { } ,
131
- } ,
152
+ EndTutorial : { } ,
153
+ }
154
+ }
155
+ }
132
156
} ,
133
157
{
134
158
actions,
0 commit comments