@@ -113,57 +113,26 @@ export default {
113113 vscode . window . showWarningMessage ( 'FAIL' )
114114 } ,
115115 // @ts -ignore
116- stepComplete : assign ( {
116+ progressUpdate : assign ( {
117117 progress : ( context : CR . MachineContext ) : CR . Progress => {
118- const nextProgress = {
119- ...context . progress ,
120- steps : {
121- ...context . progress . steps ,
122- [ context . position . stepId ] : true ,
123- }
124- }
125- console . log ( 'progress update' , nextProgress )
126- storage . setProgress ( nextProgress )
127- return nextProgress
128- }
129- } ) ,
130- // @ts -ignore
131- stageComplete : assign ( {
132- progress : ( context : CR . MachineContext ) : CR . Progress => {
133- const nextProgress = {
134- ...context . progress ,
135- stages : {
136- ...context . progress . stages ,
137- [ context . position . stageId ] : true ,
138- }
139- }
140- console . log ( 'progress update' , nextProgress )
141- storage . setProgress ( nextProgress )
142- return nextProgress
143- }
144- } ) ,
145- // @ts -ignore
146- levelComplete : assign ( {
147- progress : ( context : CR . MachineContext ) : CR . Progress => {
148- const nextProgress = {
149- ...context . progress ,
150- levels : {
151- ...context . progress . levels ,
152- [ context . position . levelId ] : true ,
153- }
154- }
155- console . log ( 'progress update' , nextProgress )
156- storage . setProgress ( nextProgress )
157- return nextProgress
118+ const { progress, position, data } = context
119+ const nextProgress = progress
158120
159- }
160- } ) ,
161- // @ts -ignore
162- tutorialComplete : assign ( {
163- progress : ( context : CR . MachineContext ) : CR . Progress => {
164- const nextProgress = {
165- ...context . progress ,
166- complete : true ,
121+ nextProgress . steps [ position . stepId ] = true
122+ const { stepList } = data . stages [ position . stageId ]
123+ const stageComplete = stepList [ stepList . length - 1 ] === position . stepId
124+ if ( stageComplete ) {
125+ nextProgress . stages [ position . stageId ] = true
126+ const { stageList } = data . levels [ position . levelId ]
127+ const levelComplete = stageList [ stageList . length - 1 ] === position . stageId
128+ if ( levelComplete ) {
129+ nextProgress . levels [ position . levelId ] = true
130+ const { levelList } = data . summary
131+ const tutorialComplete = levelList [ levelList . length - 1 ] === position . levelId
132+ if ( tutorialComplete ) {
133+ nextProgress . complete = true
134+ }
135+ }
167136 }
168137 console . log ( 'progress update' , nextProgress )
169138 storage . setProgress ( nextProgress )
0 commit comments