Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3630acf

Browse files
committed
move progress update into a single action
1 parent8f65845 commit3630acf

File tree

3 files changed

+20
-57
lines changed

3 files changed

+20
-57
lines changed

‎src/state/actions/index.ts

Lines changed: 18 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
constnextProgress={
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-
returnnextProgress
128-
}
129-
}),
130-
//@ts-ignore
131-
stageComplete:assign({
132-
progress:(context:CR.MachineContext):CR.Progress=>{
133-
constnextProgress={
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-
returnnextProgress
143-
}
144-
}),
145-
//@ts-ignore
146-
levelComplete:assign({
147-
progress:(context:CR.MachineContext):CR.Progress=>{
148-
constnextProgress={
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-
returnnextProgress
118+
const{ progress, position, data}=context
119+
constnextProgress=progress
158120

159-
}
160-
}),
161-
//@ts-ignore
162-
tutorialComplete:assign({
163-
progress:(context:CR.MachineContext):CR.Progress=>{
164-
constnextProgress={
165-
...context.progress,
166-
complete:true,
121+
nextProgress.steps[position.stepId]=true
122+
const{ stepList}=data.stages[position.stageId]
123+
conststageComplete=stepList[stepList.length-1]===position.stepId
124+
if(stageComplete){
125+
nextProgress.stages[position.stageId]=true
126+
const{ stageList}=data.levels[position.levelId]
127+
constlevelComplete=stageList[stageList.length-1]===position.stageId
128+
if(levelComplete){
129+
nextProgress.levels[position.levelId]=true
130+
const{ levelList}=data.summary
131+
consttutorialComplete=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)

‎src/state/guards/index.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,7 @@ export default {
55
const{ data, position, progress}=context
66
conststeps=data.stages[position.stageId].stepList
77
// isn't final step yet
8-
lethasNext
9-
if(steps[steps.length-1]!==position.stepId){
10-
hasNext=true
11-
}
12-
// final step is not yet complete
13-
hasNext=!progress.steps[position.stepId]
8+
consthasNext=(steps[steps.length-1]!==position.stepId)||!progress.stages[position.stageId]
149
console.log('GUARD: hasNextStep',hasNext)
1510
returnhasNext
1611
},

‎src/state/machine.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export const machine = Machine<
124124
},
125125
},
126126
TestPass:{
127-
onEntry:['testPass','stepComplete'],
127+
onEntry:['testPass','progressUpdate'],
128128
onExit:['stepLoadNext'],
129129
after:{
130130
1000:'StepNext',
@@ -149,7 +149,6 @@ export const machine = Machine<
149149
},
150150
},
151151
StageComplete:{
152-
onEntry:'stageComplete',
153152
on:{
154153
STAGE_NEXT:'#tutorial-load-next',
155154
},

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp