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

Commit2cf413a

Browse files
authored
Merge pull request#46 from ShMcK/fix/api-updates
Fix/api updates
2 parents9abdae4 +5145137 commit2cf413a

File tree

12 files changed

+50
-302
lines changed

12 files changed

+50
-302
lines changed

‎typings/context.d.ts

Lines changed: 0 additions & 18 deletions
This file was deleted.

‎typings/graphql.d.ts

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,15 @@ export type GithubUser = {
7676
exporttypeLevel={
7777
__typename?:'Level',
7878
id:Scalars['ID'],
79-
index?:number
8079
title:Scalars['String'],
80+
/** A summary of the level */
8181
description:Scalars['String'],
82+
/** The lesson content of the level, parsed as markdown */
83+
content:Scalars['String'],
84+
/** A set of tasks for users linked to unit tests */
8285
steps:Array<Step>,
86+
/** Actions run on level start up for configuring setup */
8387
setup?:Maybe<StepActions>,
84-
status:ProgressStatus,
8588
};
8689

8790
exporttypeMutation={
@@ -102,11 +105,6 @@ export type MutationCreateTutorialVersionArgs = {
102105
input:CreateTutorialVersionInput
103106
};
104107

105-
exporttypeProgressStatus=
106-
'ACTIVE'|
107-
'COMPLETE'|
108-
'INCOMPLETE';
109-
110108
exporttypeQuery={
111109
__typename?:'Query',
112110
tutorial?:Maybe<Tutorial>,
@@ -135,10 +133,9 @@ export type Step = {
135133
__typename?:'Step',
136134
id:Scalars['ID'],
137135
title:Scalars['String'],
138-
description:Scalars['String'],
136+
content:Scalars['String'],
139137
setup:StepActions,
140138
solution:StepActions,
141-
status:ProgressStatus,
142139
};
143140

144141
/** Load commits, open files or run commands */
@@ -336,7 +333,6 @@ export type ResolversTypes = {
336333
Sha1:ResolverTypeWrapper<Scalars['Sha1']>,
337334
Level:ResolverTypeWrapper<Level>,
338335
Step:ResolverTypeWrapper<Step>,
339-
ProgressStatus:ProgressStatus,
340336
Boolean:ResolverTypeWrapper<Scalars['Boolean']>,
341337
tutorialRepoInput:TutorialRepoInput,
342338
Commit:ResolverTypeWrapper<Commit>,
@@ -374,7 +370,6 @@ export type ResolversParentTypes = {
374370
Sha1:Scalars['Sha1'],
375371
Level:Level,
376372
Step:Step,
377-
ProgressStatus:ProgressStatus,
378373
Boolean:Scalars['Boolean'],
379374
tutorialRepoInput:TutorialRepoInput,
380375
Commit:Commit,
@@ -432,9 +427,9 @@ export type LevelResolvers<ContextType = any, ParentType extends ResolversParent
432427
id?:Resolver<ResolversTypes['ID'],ParentType,ContextType>,
433428
title?:Resolver<ResolversTypes['String'],ParentType,ContextType>,
434429
description?:Resolver<ResolversTypes['String'],ParentType,ContextType>,
430+
content?:Resolver<ResolversTypes['String'],ParentType,ContextType>,
435431
steps?:Resolver<Array<ResolversTypes['Step']>,ParentType,ContextType>,
436432
setup?:Resolver<Maybe<ResolversTypes['StepActions']>,ParentType,ContextType>,
437-
status?:Resolver<ResolversTypes['ProgressStatus'],ParentType,ContextType>,
438433
};
439434

440435
exporttypeMutationResolvers<ContextType=any,ParentTypeextendsResolversParentTypes['Mutation']=ResolversParentTypes['Mutation']>={
@@ -456,10 +451,9 @@ export interface Sha1ScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes
456451
exporttypeStepResolvers<ContextType=any,ParentTypeextendsResolversParentTypes['Step']=ResolversParentTypes['Step']>={
457452
id?:Resolver<ResolversTypes['ID'],ParentType,ContextType>,
458453
title?:Resolver<ResolversTypes['String'],ParentType,ContextType>,
459-
description?:Resolver<ResolversTypes['String'],ParentType,ContextType>,
454+
content?:Resolver<ResolversTypes['String'],ParentType,ContextType>,
460455
setup?:Resolver<ResolversTypes['StepActions'],ParentType,ContextType>,
461456
solution?:Resolver<ResolversTypes['StepActions'],ParentType,ContextType>,
462-
status?:Resolver<ResolversTypes['ProgressStatus'],ParentType,ContextType>,
463457
};
464458

465459
exporttypeStepActionsResolvers<ContextType=any,ParentTypeextendsResolversParentTypes['StepActions']=ResolversParentTypes['StepActions']>={
@@ -583,5 +577,4 @@ export interface IntrospectionResultData {
583577
}[];
584578
}[];
585579
};
586-
}
587-
580+
}

‎typings/index.d.ts

Lines changed: 1 addition & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -2,75 +2,7 @@ import {send} from 'xstate'
22
importStoragefrom'../src/services/storage'
33
import*asGfrom'./graphql'
44

5-
exportinterfaceTutorialLevel{
6-
stepList:string[]
7-
content:{
8-
title:string
9-
text:string
10-
}
11-
actions?:{
12-
setup:TutorialAction
13-
}
14-
}
15-
16-
exportinterfaceTutorialHint{
17-
text:string
18-
displayed?:boolean
19-
}
20-
21-
exportinterfaceTutorialAction{
22-
commits:string[]
23-
commands?:string[]
24-
files?:string[]
25-
}
26-
27-
exportinterfaceTutorialStepContent{
28-
text:string
29-
title?:string
30-
}
31-
32-
exportinterfaceTutorialStep{
33-
content:TutorialStepContent
34-
actions:{
35-
setup:TutorialAction
36-
solution:TutorialAction
37-
}
38-
hints?:TutorialHint[]
39-
}
40-
41-
exportinterfaceTutorialData{
42-
summary:TutorialSummary
43-
levels:{
44-
[levelId:string]:TutorialLevel
45-
}
46-
steps:{
47-
[stepId:string]:TutorialStep
48-
}
49-
}
50-
51-
exportinterfaceTutorialMeta{
52-
version:string
53-
repo:string
54-
createdBy:string
55-
createdAt:string
56-
updatedBy:string
57-
updatedAt:string
58-
contributors:string[]
59-
languages:string[]
60-
testRunner:string
61-
}
62-
63-
exportinterfaceTutorialSummary{
64-
title:string
65-
description:string
66-
levelList:string[]
67-
}
68-
69-
exportinterfaceTutorial{
70-
id:string
71-
meta:TutorialMeta
72-
data:TutorialData
73-
}
5+
exporttypeProgressStatus='ACTIVE'|'COMPLETE'|'INCOMPLETE'
746

757
exportinterfaceProgress{
768
levels:{

‎web-app/src/containers/Overview/OverviewPage.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import * as React from 'react'
22
import{Button}from'@alifd/next'
33
import*asGfrom'typings/graphql'
44

5+
importMarkdownfrom'../../components/Markdown'
6+
57
conststyles={
68
summary:{
79
padding:'0rem 1rem 1rem 1rem',
@@ -55,7 +57,7 @@ const Summary = ({ title, description, levels, onNext }: Props) => (
5557
</div>
5658
<divstyle={styles.summary}>
5759
<h2style={styles.title}>{title}</h2>
58-
<pstyle={styles.description}>{description}</p>
60+
<Markdown>{description}</Markdown>
5961
</div>
6062
<div>
6163
<divstyle={styles.header}>

‎web-app/src/containers/Tutorial/LevelPage/Level/index.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import{Button,Step}from'@alifd/next'
22
import*asReactfrom'react'
33
import*asGfrom'typings/graphql'
4+
import*asTfrom'typings'
45

56
importMarkdownfrom'../../../../components/Markdown'
67
importStepDescriptionfrom'./StepDescription'
@@ -45,7 +46,7 @@ const styles = {
4546
}
4647

4748
interfaceProps{
48-
level:G.Level
49+
level:G.Level&{status:T.ProgressStatus;index:number;steps:Array<G.Step&{status:T.ProgressStatus}>}
4950
onContinue():void
5051
onLoadSolution():void
5152
}
@@ -56,7 +57,7 @@ const Level = ({ level, onContinue, onLoadSolution }: Props) => {
5657
}
5758

5859
// grab the active step
59-
constactiveIndex:number=level.steps.findIndex((step:G.Step|null)=>{
60+
constactiveIndex:number=level.steps.findIndex((step:G.Step&{status:T.ProgressStatus}|null)=>{
6061
returnstep&&step.status==='ACTIVE'
6162
})
6263

@@ -68,25 +69,23 @@ const Level = ({ level, onContinue, onLoadSolution }: Props) => {
6869
</div>
6970
<divstyle={styles.content}>
7071
<h2style={styles.title}>{level.title}</h2>
71-
<Markdown>{level.description||''}</Markdown>
72+
<Markdown>{level.content||''}</Markdown>
7273
</div>
7374
</div>
7475

7576
<div>
7677
<divstyle={styles.header}>Tasks</div>
7778
<divstyle={styles.steps}>
7879
<Stepcurrent={activeIndex}direction="ver"shape="dot"animationreadOnly>
79-
{level.steps.map((step:G.Step|null,index:number)=>{
80+
{level.steps.map((step:G.Step&{status:T.ProgressStatus}|null,index:number)=>{
8081
if(!step){
8182
returnnull
8283
}
8384
return(
8485
<Step.Item
8586
key={step.id}
8687
title={step.title||`Step${index+1}`}
87-
content={
88-
<StepDescriptiontext={step.description}mode={step.status}onLoadSolution={onLoadSolution}/>
89-
}
88+
content={<StepDescriptiontext={step.content}mode={step.status}onLoadSolution={onLoadSolution}/>}
9089
/>
9190
)
9291
})}

‎web-app/src/containers/Tutorial/LevelPage/index.tsx

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import*asReactfrom'react'
2-
import*asCRfrom'typings'
2+
import*asTfrom'typings'
33
import*asGfrom'typings/graphql'
44
import*asselectorsfrom'../../../services/selectors'
55

66
importLevelfrom'./Level'
77

88
interfacePageProps{
9-
context:CR.MachineContext
10-
send(action:CR.Action):void
9+
context:T.MachineContext
10+
send(action:T.Action):void
1111
}
1212

1313
constLevelSummaryPageContainer=(props:PageProps)=>{
1414
const{ position, progress}=props.context
1515

16-
constlevel:G.Level=selectors.currentLevel(props.context)
16+
constversion=selectors.currentVersion(props.context)
17+
constlevelData:G.Level=selectors.currentLevel(props.context)
1718

1819
constonContinue=():void=>{
1920
props.send({
@@ -28,16 +29,25 @@ const LevelSummaryPageContainer = (props: PageProps) => {
2829
props.send({type:'STEP_SOLUTION_LOAD'})
2930
}
3031

31-
level.steps.forEach((step:G.Step)=>{
32-
if(progress.steps[step.id]){
33-
step.status='COMPLETE'
34-
}elseif(step.id===position.stepId){
35-
step.status='ACTIVE'
36-
}else{
37-
step.status='INCOMPLETE'
38-
}
39-
})
40-
level.status=progress.levels[position.levelId] ?'COMPLETE' :'ACTIVE'
32+
constlevel:G.Level&{
33+
status:T.ProgressStatus
34+
index:number
35+
steps:Array<G.Step&{status:T.ProgressStatus}>
36+
}={
37+
...levelData,
38+
index:version.data.levels.findIndex((l:G.Level)=>l.id===position.levelId),
39+
status:progress.levels[position.levelId] ?'COMPLETE' :'ACTIVE',
40+
steps:levelData.steps.map((step:G.Step)=>{
41+
// label step status for step component
42+
letstatus:T.ProgressStatus='INCOMPLETE'
43+
if(progress.steps[step.id]){
44+
status='COMPLETE'
45+
}elseif(step.id===position.stepId){
46+
status='ACTIVE'
47+
}
48+
return{ ...step, status}
49+
}),
50+
}
4151

4252
return<Levellevel={level}onContinue={onContinue}onLoadSolution={onLoadSolution}/>
4353
}

‎web-app/src/containers/Tutorial/LevelsPage/Level/LevelStageSummary.tsx

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp