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
This repository was archived by the owner on Apr 8, 2020. It is now read-only.

Commit29daf94

Browse files
committed
display editable final page
1 parentb9498c6 commit29daf94

File tree

17 files changed

+171
-85
lines changed

17 files changed

+171
-85
lines changed

‎lib/components/FinalPage/SeeMore.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
"use strict";
2+
varReact=require('react');
3+
varFlatButton_1=require('material-ui/FlatButton');
4+
varSeeMore=function(){return(React.createElement("div",null,
5+
"What's next?",
6+
React.createElement("br",null),
7+
React.createElement("br",null),
8+
React.createElement("a",{href:'https://coderoad.github.io/tutorials.html'},
9+
React.createElement(FlatButton_1.default,{label:'See More Tutorials',disabled:true})
10+
),
11+
React.createElement("span",null," (coming soon)"),
12+
React.createElement("br",null),
13+
React.createElement("br",null),
14+
React.createElement("a",{href:'https://coderoad.github.io/builder-coderoad.html'},
15+
React.createElement(FlatButton_1.default,{label:'Learn how to Create a Tutorial'})
16+
)));};
17+
Object.defineProperty(exports,"__esModule",{value:true});
18+
exports.default=SeeMore;

‎lib/components/FinalPage/index.js

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ var __extends = (this && this.__extends) || function (d, b) {
55
d.prototype=b===null ?Object.create(b) :(__.prototype=b.prototype,new__());
66
};
77
varReact=require('react');
8+
varreact_redux_1=require('react-redux');
9+
varselectors_1=require('../../selectors');
10+
varindex_1=require('../index');
11+
varSeeMore_1=require('./SeeMore');
812
varCard_1=require('material-ui/Card');
9-
varFlatButton_1=require('material-ui/FlatButton');
13+
varDivider_1=require('material-ui/Divider');
1014
varstyles={
1115
card:{
1216
margin:'5px',
@@ -19,23 +23,18 @@ var FinalPage = (function (_super) {
1923
_super.apply(this,arguments);
2024
}
2125
FinalPage.prototype.render=function(){
26+
varpage=this.props.page;
2227
return(React.createElement(Card_1.Card,{style:styles.card},
2328
React.createElement(Card_1.CardTitle,{title:'Congratulations!',subtitle:'Tutorial Complete!'}),
2429
React.createElement(Card_1.CardText,null,
25-
"What's next?",
26-
React.createElement("br",null),
27-
React.createElement("br",null),
28-
React.createElement("a",{href:'https://coderoad.github.io/tutorials.html'},
29-
React.createElement(FlatButton_1.default,{label:'See More Tutorials',disabled:true})
30-
),
31-
React.createElement("span",null," (coming soon)"),
32-
React.createElement("br",null),
33-
React.createElement("br",null),
34-
React.createElement("a",{href:'https://coderoad.github.io/builder-coderoad.html'},
35-
React.createElement(FlatButton_1.default,{label:'Learn how to Create a Tutorial'})
36-
))));
30+
page&&page.description ?React.createElement(index_1.Markdown,{children:page.description}) :null,
31+
page&&page.description ?React.createElement(Divider_1.default,null) :null,
32+
React.createElement(SeeMore_1.default,null))));
3733
};
3834
returnFinalPage;
3935
}(React.Component));
36+
varmapStateToProps=function(state){return({
37+
page:selectors_1.finalPageSelector(state)
38+
});};
4039
Object.defineProperty(exports,"__esModule",{value:true});
41-
exports.default=FinalPage;
40+
exports.default=react_redux_1.connect(mapStateToProps)(FinalPage);

‎lib/modules/tutorial/index.js

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,40 @@
11
"use strict";
2-
varreducer_1=require('./reducer');
3-
exports.reducer=reducer_1.default;
2+
varpath_1=require('path');
3+
vartypes_1=require('./types');
4+
varconfig_1=require('./utils/config');
5+
exports._tutorial={
6+
name:'default',
7+
version:'0.1.0',
8+
info:{
9+
title:'error',
10+
description:'Something went wrong. Tutorial not loaded.'
11+
},
12+
pages:[],
13+
packageJson:null,
14+
config:null,
15+
};
16+
functiontutorialReducer(t,action){
17+
if(t===void0){t=exports._tutorial;}
18+
switch(action.type){
19+
casetypes_1.TUTORIAL_SET:
20+
var_a=action.payload,name_1=_a.name,dir=_a.dir,version=_a.version;
21+
varpackagePath=path_1.join(dir,'node_modules',name_1);
22+
varpackageJson=require(path_1.join(packagePath,'package.json'));
23+
varconfig=config_1.tutorialConfig(packageJson,dir);
24+
varcoderoadJsonPath=path_1.join(packagePath,packageJson.main);
25+
var_b=require(coderoadJsonPath),info=_b.info,pages=_b.pages,final=_b.final;
26+
return{
27+
name:packageJson.name,
28+
version:version,
29+
info:info,
30+
pages:pages,
31+
packageJson:packageJson,
32+
config:config,
33+
final:final,
34+
};
35+
default:
36+
returnt;
37+
}
38+
}
39+
Object.defineProperty(exports,"__esModule",{value:true});
40+
exports.default=tutorialReducer;

‎lib/reducers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
1616
exports.default=redux_1.combineReducers({
1717
alert:alert_1.default,checks:setup_1.checks,editor:editor_1.reducer,dir:dir_1.default,hintPosition:hints_1.default,
1818
packageJson:setup_1.packageJson,pagePosition:page_1.pagePosition,progress:progress_1.default,route:route_1.reducer,
19-
tutorial:tutorial_1.reducer,tutorials:tutorials_1.default,
19+
tutorial:tutorial_1.default,tutorials:tutorials_1.default,
2020
taskActions:page_1.taskActions,taskPosition:tests_1.taskPosition,testRun:tests_1.testRun,window:window_1.reducer
2121
});

‎lib/selectors/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ exports.hintSelector = hints_1.hintSelector;
55
varpage_1=require('./page');
66
exports.pageSelector=page_1.pageSelector;
77
exports.pageCompletedSelector=page_1.pageCompletedSelector;
8+
exports.finalPageSelector=page_1.finalPageSelector;
89
vartasks_1=require('./tasks');
910
exports.tasksSelector=tasks_1.tasksSelector;
1011
exports.currentTaskSelector=tasks_1.currentTaskSelector;

‎lib/selectors/page.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
"use strict";
22
exports.pageSelector=function(state){returnstate.tutorial.pages[state.pagePosition];};
33
exports.pageCompletedSelector=function(state){returnstate.progress.pages[state.pagePosition];};
4+
exports.finalPageSelector=function(state){returnstate.tutorial.final;};

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
},
3131
"dependencies": {
3232
"atom-plugin-command-line":"1.0.2",
33-
"coderoad-cli":"0.9.1",
33+
"coderoad-cli":"0.10.0",
3434
"marked":"0.3.6",
3535
"material-ui":"0.15.4",
3636
"node-file-exists":"1.1.0",

‎src/components/FinalPage/SeeMore.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import*asReactfrom'react';
2+
3+
importFlatButtonfrom'material-ui/FlatButton';
4+
5+
constSeeMore=()=>(
6+
<div>
7+
What's next?
8+
<br/><br/>
9+
<ahref='https://coderoad.github.io/tutorials.html'>
10+
<FlatButton
11+
label='See More Tutorials'
12+
disabled={true}
13+
/>
14+
</a>
15+
<span> (coming soon)</span>
16+
<br/><br/>
17+
<ahref='https://coderoad.github.io/builder-coderoad.html'>
18+
<FlatButtonlabel='Learn how to Create a Tutorial'/>
19+
</a>
20+
</div>
21+
);
22+
23+
exportdefaultSeeMore;

‎src/components/FinalPage/index.tsx

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import*asReactfrom'react';
22
import{connect}from'react-redux';
33

4+
import{finalPageSelector}from'../../selectors';
5+
import{Markdown}from'../index';
6+
importSeeMorefrom'./SeeMore';
47
import{Card,CardActions,CardText,CardTitle}from'material-ui/Card';
58
importDividerfrom'material-ui/Divider';
6-
importFlatButtonfrom'material-ui/FlatButton';
79
importPaperfrom'material-ui/Paper';
810

911
conststyles={
@@ -13,33 +15,30 @@ const styles = {
1315
},
1416
};
1517

16-
classFinalPageextendsReact.Component<{},{}>{
18+
classFinalPageextendsReact.Component<{
19+
page:{description:string}
20+
},{}>{
1721
publicrender(){
22+
const{ page}=this.props;
1823
return(
1924
<Cardstyle={styles.card}>
2025
<CardTitle
2126
title='Congratulations!'
2227
subtitle='Tutorial Complete!'
2328
/>
2429
<CardText>
25-
What's next?
26-
<br/><br/>
27-
<ahref='https://coderoad.github.io/tutorials.html'>
28-
<FlatButton
29-
label='See More Tutorials'
30-
disabled={true}
31-
/>
32-
</a>
33-
<span> (coming soon)</span>
34-
<br/><br/>
35-
<ahref='https://coderoad.github.io/builder-coderoad.html'>
36-
<FlatButtonlabel='Learn how to Create a Tutorial'/>
37-
</a>
30+
{page&&page.description ?<Markdownchildren={page.description}/> :null}
31+
{page&&page.description ?<Divider/> :null}
32+
<SeeMore/>
3833
</CardText>
3934

4035
</Card>
4136
);
4237
}
4338
}
4439

45-
exportdefaultFinalPage;
40+
constmapStateToProps=state=>({
41+
page:finalPageSelector(state)
42+
})
43+
44+
exportdefaultconnect(mapStateToProps)(FinalPage);

‎src/modules/tutorial/index.ts

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,48 @@
1-
export{defaultasreducer}from'./reducer';
1+
import{join}from'path';
2+
3+
import{TUTORIAL_SET}from'./types';
4+
import{tutorialConfig}from'./utils/config';
5+
6+
exportconst_tutorial:CR.Tutorial={
7+
name:'default',
8+
version:'0.1.0',
9+
info:{
10+
title:'error',
11+
description:'Something went wrong. Tutorial not loaded.'
12+
},
13+
pages:[],
14+
packageJson:null,
15+
config:null,
16+
};
17+
18+
exportdefaultfunctiontutorialReducer(
19+
t=_tutorial,action:Action
20+
):CR.Tutorial{
21+
switch(action.type){
22+
23+
caseTUTORIAL_SET:
24+
const{name, dir, version}=action.payload;
25+
26+
// get tutorial package.json
27+
constpackagePath:string=join(dir,'node_modules',name);
28+
constpackageJson:PackageJson=require(join(packagePath,'package.json'));
29+
30+
constconfig:Tutorial.Config=tutorialConfig(packageJson,dir);
31+
constcoderoadJsonPath=join(packagePath,packageJson.main);
32+
let{info, pages, final}=require(coderoadJsonPath);
33+
34+
// return tutorial (info, pages) & tutorial package.json
35+
return{
36+
name:packageJson.name,
37+
version,
38+
info,
39+
pages,
40+
packageJson,
41+
config,
42+
final,
43+
};
44+
45+
default:
46+
returnt;
47+
}
48+
}

‎src/modules/tutorial/reducer.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/// <reference path="../../typings/globals/jest/index.d.ts" />
22

3-
importreducer,{_tutorial}from'./reducer';
3+
importreducer,{_tutorial}from'./index';
44

55
describe('tutorial reducer',()=>{
66

‎src/modules/tutorial/reducer.ts

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

‎src/reducers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {default as progress} from './modules/progress';
1010
import{reducerasroute}from'./modules/route';
1111
import{checks,packageJson}from'./modules/setup';
1212
import{taskPosition,testRun}from'./modules/tests';
13-
import{reducerastutorial}from'./modules/tutorial';
13+
import{defaultastutorial}from'./modules/tutorial';
1414
import{defaultastutorials}from'./modules/tutorials';
1515
import{reduceraswindow}from'./modules/window';
1616

‎src/selectors/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export{hintsSelector,hintSelector}from'./hints';
2-
export{pageSelector,pageCompletedSelector}from'./page';
2+
export{pageSelector,pageCompletedSelector,finalPageSelector}from'./page';
33
export{tasksSelector,currentTaskSelector,visibleTasksSelector,taskProgressSelector,taskByIndexSelector}from'./tasks';
44
export{configSelector}from'./packageJson';

‎src/selectors/page.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
exportconstpageSelector=state=>state.tutorial.pages[state.pagePosition];
22

33
exportconstpageCompletedSelector=state=>state.progress.pages[state.pagePosition];
4+
5+
exportconstfinalPageSelector=state=>state.tutorial.final;

‎src/typings/coderoad/index.d.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ declare namespace CR {
1717
completed?:boolean;
1818
}
1919

20+
interfaceFinal{
21+
description:string;
22+
}
23+
2024
interfaceState{
2125
dir:string;
2226
route:string;
@@ -43,6 +47,7 @@ declare namespace CR {
4347
isLatest?:boolean;
4448
info:Tutorial.Info;
4549
pages:CR.Page[];
50+
final?:Final;
4651
packageJson:PackageJson|null;
4752
config:Tutorial.Config|null;
4853
}

‎src/typings/tutorial/index.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ declare namespace Tutorial {
3030
exportinterfaceOutput{
3131
info:CR.Info;
3232
pages:CR.Page[];
33+
final?:CR.Final;
3334
}
3435

3536
exportinterfacePJ{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp