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

Commitc91a79f

Browse files
committed
change tutorialPackage service to redux reducer - in progress
1 parent1432a44 commitc91a79f

File tree

26 files changed

+479
-341
lines changed

26 files changed

+479
-341
lines changed

‎lib/actions/_types.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ exports.ALERT_TOGGLE = 'ALERT_TOGGLE';
44
exports.COMPLETE_CHAPTER='COMPLETE_CHAPTER';
55
exports.COMPLETE_PAGE='COMPLETE_PAGE';
66
exports.COMPLETE_TUTORIAL='COMPLETE_TUTORIAL';
7-
exports.GLOBALS_SET='GLOBALS_SET';
87
exports.HINT_POSITION_SET='HINT_POSITION_SET';
98
exports.HINT_SHOW='HINT_SHOW';
109
exports.PACKAGE_SET='PACKAGE_SET';

‎lib/actions/index.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ var complete_1 = require('./complete');
66
exports.completePage=complete_1.completePage;
77
exports.completeChapter=complete_1.completeChapter;
88
exports.completeTutorial=complete_1.completeTutorial;
9-
varglobals_1=require('./globals');
10-
exports.globalsSet=globals_1.globalsSet;
119
varhint_1=require('./hint');
1210
exports.hintShow=hint_1.hintShow;
1311
exports.hintPositionSet=hint_1.hintPositionSet;
@@ -26,5 +24,4 @@ exports.testComplete = test_1.testComplete;
2624
exports.testResult=test_1.testResult;
2725
vartutorial_1=require('./tutorial');
2826
exports.tutorialsFind=tutorial_1.tutorialsFind;
29-
exports.tutorialUpdate=tutorial_1.tutorialUpdate;
3027
exports.tutorialSet=tutorial_1.tutorialSet;

‎lib/actions/tutorial.js

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
"use strict";
22
var_types_1=require('./_types');
3-
functiontutorialSet(){
4-
return{type:_types_1.TUTORIAL_SET};
3+
functiontutorialSet(name){
4+
return{type:_types_1.TUTORIAL_SET,payload:{name:name}};
55
}
66
exports.tutorialSet=tutorialSet;
7-
functiontutorialUpdate(name){
8-
return{type:_types_1.TUTORIAL_UPDATE,payload:{name:name}};
9-
}
10-
exports.tutorialUpdate=tutorialUpdate;
117
functiontutorialsFind(){
128
return{type:_types_1.TUTORIALS_FIND};
139
}

‎lib/components/Tutorials/SelectTutorial.js

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,15 @@ var React = require('react');
1717
varreact_redux_1=require('react-redux');
1818
varFlatButton_1=require('material-ui/FlatButton');
1919
varactions_1=require('../../actions');
20-
vartutorial_package_1=require('../../services/tutorial-package');
20+
functiondisplayName(name){
21+
if(name.match(/^coderoad-tutorial-/)){
22+
returnname.slice(18);
23+
}
24+
elseif(name.match(/^coderoad-/)){
25+
returnname.slice(9);
26+
}
27+
returnname;
28+
}
2129
varSelectTutorial=(function(_super){
2230
__extends(SelectTutorial,_super);
2331
functionSelectTutorial(){
@@ -26,20 +34,13 @@ var SelectTutorial = (function (_super) {
2634
SelectTutorial.prototype.render=function(){
2735
var_a=this.props,tutorial=_a.tutorial,selectTutorial=_a.selectTutorial;
2836
varname=tutorial.name;
29-
if(name.match(/^coderoad-tutorial-/)){
30-
name=name.slice(18);
31-
}
32-
elseif(name.match(/^coderoad-/)){
33-
name=name.slice(9);
34-
}
35-
return(React.createElement(FlatButton_1.default,{label:name,primary:true,onTouchTap:selectTutorial.bind(this,tutorial)}));
37+
return(React.createElement(FlatButton_1.default,{label:displayName(name),primary:true,onTouchTap:selectTutorial.bind(this,name)}));
3638
};
3739
SelectTutorial=__decorate([
3840
react_redux_1.connect(null,function(dispatch){
3941
return{
40-
selectTutorial:function(tutorial){
41-
tutorial_package_1.default.set(tutorial.name);
42-
dispatch(actions_1.tutorialSet());
42+
selectTutorial:function(name){
43+
dispatch(actions_1.tutorialSet(name));
4344
dispatch(actions_1.positionSet({chapter:0,page:0}));
4445
dispatch(actions_1.setRoute('progress'));
4546
},

‎lib/reducers/index.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ var redux_1 = require('redux');
33
varalert_1=require('./alert');
44
varchecks_1=require('./checks');
55
vareditor_actions_1=require('./editor-actions');
6-
varglobals_1=require('./globals');
76
varhint_position_1=require('./hint-position');
87
varpackage_json_1=require('./package-json');
98
varpage_1=require('./page');
@@ -14,11 +13,11 @@ var task_position_1 = require('./task-position');
1413
vartask_tests_1=require('./task-tests');
1514
vartasks_1=require('./tasks');
1615
vartest_run_1=require('./test-run');
17-
vartutorial_info_1=require('./tutorial-info');
16+
vartutorial_1=require('./tutorial');
1817
vartutorials_1=require('./tutorials');
1918
Object.defineProperty(exports,"__esModule",{value:true});
2019
exports.default=redux_1.combineReducers({
21-
alert:alert_1.default,checks:checks_1.default,editorActions:editor_actions_1.default,globals:globals_1.default,hintPosition:hint_position_1.default,
22-
page:page_1.default,packageJson:package_json_1.default,position:position_1.default,progress:progress_1.default,route:route_1.default,taskPosition:task_position_1.default,
23-
taskTests:task_tests_1.default,tasks:tasks_1.default,testRun:test_run_1.default,tutorialInfo:tutorial_info_1.default,tutorials:tutorials_1.default
20+
alert:alert_1.default,checks:checks_1.default,editorActions:editor_actions_1.default,hintPosition:hint_position_1.default,page:page_1.default,
21+
packageJson:package_json_1.default,position:position_1.default,progress:progress_1.default,route:route_1.default,taskPosition:task_position_1.default,
22+
taskTests:task_tests_1.default,tasks:tasks_1.default,testRun:test_run_1.default,tutorial:tutorial_1.default,tutorials:tutorials_1.default
2423
});

‎lib/reducers/tutorial/index.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"use strict";
2+
var_types_1=require('../../actions/_types');
3+
varpath_1=require('path');
4+
vartutorial_config_1=require('./tutorial-config');
5+
var_tutorial={
6+
info:null,
7+
chapters:[],
8+
packageJson:null,
9+
config:null
10+
};
11+
functiontutorialReducer(tutorial,action){
12+
if(tutorial===void0){tutorial=_tutorial;}
13+
switch(action.type){
14+
case_types_1.TUTORIAL_SET:
15+
varname_1=action.payload.name;
16+
varpackagePath=path_1.join(window.coderoad.dir,'node_modules',name_1);
17+
varpackageJson=require(path_1.join(packagePath,'package.json'));
18+
varconfig=tutorial_config_1.tutorialConfig(packageJson);
19+
var_a=require(path_1.join(packagePath,packageJson.main)),project=_a.project,chapters=_a.chapters;
20+
return{
21+
info:project,
22+
chapters:chapters,
23+
packageJson:packageJson,
24+
config:config
25+
};
26+
default:
27+
returntutorial;
28+
}
29+
}
30+
Object.defineProperty(exports,"__esModule",{value:true});
31+
exports.default=tutorialReducer;
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
"use strict";
2+
varpath_1=require('path');
3+
varexists_1=require('../../services/exists');
4+
functiontutorialConfig(tutorialPj){
5+
returnObject.assign({},{
6+
tutorial:tutorialPj.name,
7+
suffix:tutorialPj.config.testSuffix.substring(tutorialPj.config.testSuffix.lastIndexOf('.')+1,tutorialPj.config.testSuffix.length),
8+
tutorialDir:path_1.join(window.coderoad.dir,'node_modules',tutorialPj.name,tutorialPj.config.testDir),
9+
testRunner:tutorialPj.config.testRunner,
10+
testRunnerOptions:tutorialPj.config.testRunnerOptions||{},
11+
runner:loadRunnerDep(tutorialPj),
12+
repo:loadRepo(tutorialPj),
13+
edit:tutorialPj.config.edit&&!!window.coderoad.repo||false,
14+
issuesPath:tutorialPj.bugs&&tutorialPj.bugs.url ?tutorialPj.bugs.url :null
15+
},window.coderoad);
16+
}
17+
exports.tutorialConfig=tutorialConfig;
18+
functionloadRunnerDep(tutorialPj){
19+
varflatDep=path_1.join(window.coderoad.dir,'node_modules',tutorialPj.config.testRunner,'package.json');
20+
vartreeDep=path_1.join(window.coderoad.dir,'node_modules',tutorialPj.name,'node_modules',tutorialPj.config.testRunner,'package.json');
21+
varrunnerMain;
22+
varrunnerRoot;
23+
if(exists_1.fileExists(flatDep)){
24+
runnerMain=require(flatDep).main;
25+
runnerRoot=flatDep;
26+
}
27+
elseif(exists_1.fileExists(treeDep)){
28+
runnerMain=require(treeDep).main;
29+
runnerRoot=treeDep;
30+
}
31+
else{
32+
varmessage='Error loading test runner. Post an issue. https://github.com/coderoad/atom-coderoad/issues';
33+
console.log(message);
34+
throwmessage;
35+
}
36+
varslash=window.coderoad.win ?'\\' :'/';
37+
runnerMain=path_1.join.apply(null,runnerMain.split(slash));
38+
runnerRoot=runnerRoot.substring(0,runnerRoot.lastIndexOf(slash));
39+
varpathToMain=path_1.join(runnerRoot,runnerMain);
40+
if(!!require(pathToMain).default){
41+
returnrequire(pathToMain).default;
42+
}
43+
else{
44+
returnrequire(pathToMain);
45+
}
46+
}
47+
functionloadRepo(tutorialPj){
48+
if(tutorialPj.repo&&tutorialPj.repo.url){
49+
varrepo=tutorialPj.repo.url;
50+
if(!!repo.match(/\.git$/)){
51+
repo=repo.slice(0,repo.length-4);
52+
}
53+
returnrepo;
54+
}
55+
returnnull;
56+
}

‎src/actions/_types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ export const ALERT_TOGGLE = 'ALERT_TOGGLE';
33
exportconstCOMPLETE_CHAPTER='COMPLETE_CHAPTER';
44
exportconstCOMPLETE_PAGE='COMPLETE_PAGE';
55
exportconstCOMPLETE_TUTORIAL='COMPLETE_TUTORIAL';
6-
exportconstGLOBALS_SET='GLOBALS_SET';
76
exportconstHINT_POSITION_SET='HINT_POSITION_SET';
87
exportconstHINT_SHOW='HINT_SHOW';
98
exportconstPACKAGE_SET='PACKAGE_SET';
109
exportconstPAGE_NEXT='PAGE_NEXT';
1110
exportconstPAGE_SET='PAGE_SET';
1211
exportconstPOSITION_SET='POSITION_SET';
12+
exportconstPROGRESS_LOAD='PROGRESS_LOAD';
1313
exportconstROUTE_SET='ROUTE_SET';
1414
exportconstSETUP_VERIFY='SETUP_VERIFY';
1515
exportconstTEST_COMPLETE='TEST_COMPLETE';

‎src/actions/globals.ts

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

‎src/actions/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
export{alertToggle,alertReplay}from'./alert';
22
export{
3-
completePage,completeChapter,completeTutorial
4-
}from'./complete';
5-
export{globalsSet}from'./globals';
3+
progressLoad,completePage,completeChapter,completeTutorial
4+
}from'./progress';
65
export{hintShow,hintPositionSet}from'./hint';
76
export{pageSet,pageNext}from'./page';
87
export{positionSet}from'./position';
@@ -12,5 +11,5 @@ export {
1211
testRun,testComplete,testResult
1312
}from'./test';
1413
export{
15-
tutorialsFind,tutorialUpdate,tutorialSet
14+
tutorialsFind,tutorialSet
1615
}from'./tutorial';

‎src/actions/page.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
import{ROUTE_SET,PAGE_SET}from'./_types';
1+
import{ROUTE_SET,PAGE_SET,PAGE_NEXT}from'./_types';
22
import{store}from'../store';
3-
importTutorialPackagefrom'../services/tutorial-package';
3+
//import TutorialPackage from '../services/tutorial-package';
44

55
exportfunctionpageNext():CR.Action{
66
constposition:CR.Position=store.getState().position;
7-
constnextPosition:CR.Position=TutorialPackage.getNextPosition(position);
8-
returnpageSet(nextPosition);
7+
return{type:PAGE_NEXT,payload:{ position}};
98
}
109

1110
exportfunctionpageSet(selectedPosition:CR.Position={chapter:0,page:0}):CR.Action{
1211
if(selectedPosition.completed){
1312
return{type:ROUTE_SET,payload:{route:'final'}};
1413
}
15-
constpage:CR.Page=TutorialPackage.getPage(selectedPosition);
16-
consttasks:CR.Task[]=TutorialPackage.getTasks(selectedPosition);
17-
consttaskTests:CR.TaskTest[]=[].concat.apply([],tasks.map((task)=>task.tests||[]));
18-
constactions:string[][]=tasks.map((task:CR.Task)=>task.actions||[]);
19-
return{type:PAGE_SET,payload:{ page, tasks,position:selectedPosition, taskTests, actions}};
14+
return{type:PAGE_SET,payload:{ selectedPosition}};
15+
// const page: CR.Page = TutorialPackage.getPage(selectedPosition);
16+
// const tasks: CR.Task[] = TutorialPackage.getTasks(selectedPosition);
17+
// const taskTests: CR.TaskTest[] = [].concat.apply([], tasks.map((task) => task.tests || []));
18+
// const actions: string[][] = tasks.map((task: CR.Task) => task.actions || []);
19+
// return { type: PAGE_SET, payload: { page, tasks, position: selectedPosition, taskTests, actions }};
2020
}

‎src/actions/complete.tsrenamed to‎src/actions/progress.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import{
2-
COMPLETE_PAGE,COMPLETE_CHAPTER,COMPLETE_TUTORIAL
2+
PROGRESS_LOAD,COMPLETE_PAGE,COMPLETE_CHAPTER,COMPLETE_TUTORIAL
33
}from'./_types';
44
import{store}from'../store';
55

6+
exportfunctionprogressLoad():CR.Action{
7+
return{type:PROGRESS_LOAD};
8+
}
9+
610
exportfunctioncompletePage():CR.Action{
711
constposition:CR.Position=store.getState().position;
812
constpageLength:number=store.getState().progress.chapters[position.chapter].pages.length;

‎src/actions/tutorial.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import {
22
TUTORIALS_FIND,TUTORIAL_UPDATE,TUTORIAL_SET
33
}from'./_types';
44

5-
exportfunctiontutorialSet():CR.Action{
6-
return{type:TUTORIAL_SET};
5+
exportfunctiontutorialSet(name:string):CR.Action{
6+
return{type:TUTORIAL_SET,payload:{name}};
77
}
88

9-
exportfunctiontutorialUpdate(name:string):CR.Action{
10-
return{type:TUTORIAL_UPDATE,payload:{ name}};
11-
}
9+
//export function tutorialUpdate(name: string): CR.Action {
10+
// return { type: TUTORIAL_UPDATE, payload: { name }};
11+
//}
1212

1313
exportfunctiontutorialsFind():CR.Action{
1414
return{type:TUTORIALS_FIND};

‎src/components/Progress/index.tsx

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import*asReactfrom'react';
2-
import*asclassnamesfrom'classnames';
32
importPaperfrom'material-ui/Paper';
4-
import{List,ListItem}from'material-ui/List';
3+
import{List}from'material-ui/List';
54
importSubheaderfrom'material-ui/Subheader';
6-
importCheckBoxfrom'material-ui/svg-icons/toggle/check-box';
75
import{ProgressChapter}from'./ProgressChapter';
86

9-
conststyle={
7+
constpageStyle={
108
width:'100%',
119
margin:0
1210
};
@@ -15,9 +13,9 @@ export const Progress: React.StatelessComponent<{
1513
progress:CR.Progress,position:CR.Position
1614
}>=({progress, position})=>(
1715
<Paper
18-
style={style}
19-
zDepth={1}
2016
className='cr-progress'
17+
style={pageStyle}
18+
zDepth={1}
2119
>
2220
<List>
2321
<Subheader>Progress</Subheader>

‎src/components/Tutorials/SelectTutorial.tsx

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,42 @@
11
import*asReactfrom'react';
22
import{connect}from'react-redux';
33
importFlatButtonfrom'material-ui/FlatButton';
4-
import{setRoute,alertToggle,positionSet,tutorialSet}from'../../actions';
4+
import{
5+
positionSet,tutorialSet,progressLoad,setRoute
6+
}from'../../actions';
57

68
importTutorialPackagefrom'../../services/tutorial-package';
79

10+
functiondisplayName(name:string):string{
11+
if(name.match(/^coderoad-tutorial-/)){
12+
returnname.slice(18);
13+
}elseif(name.match(/^coderoad-/)){
14+
returnname.slice(9);
15+
}
16+
returnname;
17+
}
18+
819
@connect(null,(dispatch)=>{
920
return{
10-
selectTutorial:(tutorial:CR.Tutorial)=>{
11-
TutorialPackage.set(tutorial.name);
12-
dispatch(tutorialSet());
21+
selectTutorial:(name:string)=>{
22+
dispatch(tutorialSet(name));
1323
dispatch(positionSet({chapter:0,page:0}));
24+
dispatch(progressLoad());
1425
dispatch(setRoute('progress'));
1526
},
1627
};
1728
})
1829
exportclassSelectTutorialextendsReact.Component<{
19-
tutorial:CR.Tutorial,selectTutorial?:any
30+
tutorial:CR.TutorialInfo,selectTutorial?:any
2031
},{}>{
2132
render(){
2233
const{tutorial, selectTutorial}=this.props;
23-
letname=tutorial.name;
24-
if(name.match(/^coderoad-tutorial-/)){
25-
name=name.slice(18);
26-
}elseif(name.match(/^coderoad-/)){
27-
name=name.slice(9);
28-
}
34+
constname=tutorial.name;
2935
return(
3036
<FlatButton
31-
label={name}
37+
label={displayName(name)}
3238
primary={true}
33-
onTouchTap={selectTutorial.bind(this,tutorial)}
39+
onTouchTap={selectTutorial.bind(this,name)}
3440
/>
3541
);
3642
}

‎src/reducers/globals/index.ts

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

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp