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

Commit28866c6

Browse files
committed
moving store into action creators
1 parent37e2e70 commit28866c6

File tree

47 files changed

+259
-196
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+259
-196
lines changed

‎lib/actions/page.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,25 @@ var test_1 = require('./test');
33
var_types_1=require('./_types');
44
varstore_1=require('../store');
55
functionpageNext(){
6-
varpagePosition=store_1.default.getState().pagePosition;
7-
varpages=store_1.default.getState().tutorial.pages;
6+
var_a=store_1.default.getState(),pagePosition=_a.pagePosition,tutorial=_a.tutorial;
7+
varpages=tutorial.pages;
88
if(pagePosition>=pages.length-1){
99
return{type:_types_1.ROUTE_SET,payload:{route:'final'}};
1010
}
1111
else{
12-
pagePosition=pagePosition+1;
12+
pagePosition+=1;
1313
setTimeout(function(){returnstore_1.default.dispatch(test_1.testsLoad(pagePosition));});
14-
return{type:_types_1.PAGE_SET,payload:{pagePosition:pagePosition}};
14+
returnpageSet(pagePosition);
1515
}
1616
}
1717
exports.pageNext=pageNext;
1818
functionpageSet(pagePosition){
1919
if(pagePosition===void0){pagePosition=0;}
20-
var_a=store_1.default.getState(),progress=_a.progress,tutorial=_a.tutorial;
20+
var_a=store_1.default.getState(),dir=_a.dir,progress=_a.progress,tutorial=_a.tutorial;
2121
if(pagePosition>=progress.pages.length){
22-
return{
23-
payload:{route:'final'},
24-
type:_types_1.ROUTE_SET,
25-
};
22+
return{type:_types_1.ROUTE_SET,payload:{route:'final'}};
2623
}
27-
return{type:_types_1.PAGE_SET,payload:{pagePosition:pagePosition,tutorial:tutorial}};
24+
return{type:_types_1.PAGE_SET,payload:{dir:dir,pagePosition:pagePosition,tutorial:tutorial,progress:progress}};
2825
}
2926
exports.pageSet=pageSet;
3027
functionpagePositionLoad(){

‎lib/actions/progress.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@ function progressLoad() {
99
}
1010
exports.progressLoad=progressLoad;
1111
functioncompletePage(){
12-
var_a=store_1.default.getState(),pagePosition=_a.pagePosition,progress=_a.progress;
12+
var_a=store_1.default.getState(),pagePosition=_a.pagePosition,progress=_a.progress,tutorial=_a.tutorial;
1313
if(progress.pages.every(function(x){returnx.completed;})){
1414
store_1.default.dispatch(completeTutorial());
1515
}
16-
return{type:_types_1.COMPLETE_PAGE,payload:{pagePosition:pagePosition}};
16+
return{type:_types_1.COMPLETE_PAGE,payload:{pagePosition:pagePosition,tutorial:tutorial}};
1717
}
1818
exports.completePage=completePage;
1919
functioncompleteTutorial(){
20-
return{type:_types_1.COMPLETE_TUTORIAL};
20+
vartutorial=store_1.default.getState().tutorial;
21+
return{type:_types_1.COMPLETE_TUTORIAL,payload:{tutorial:tutorial}};
2122
}
2223
exports.completeTutorial=completeTutorial;

‎lib/actions/setup.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ var package_1 = require('./package');
44
varstore_1=require('../store');
55
functionsetupVerify(){
66
store_1.default.dispatch(package_1.packageSet());
7-
return{type:_types_1.SETUP_VERIFY};
7+
var_a=store_1.default.getState(),dir=_a.dir,packageJson=_a.packageJson;
8+
return{type:_types_1.SETUP_VERIFY,payload:{dir:dir,packageJson:packageJson}};
89
}
910
exports.setupVerify=setupVerify;

‎lib/actions/test.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
var_types_1=require('./_types');
33
varstore_1=require('../store');
44
functiontestRun(){
5-
return{type:_types_1.TEST_RUN};
5+
var_a=store_1.default.getState(),taskTests=_a.taskTests,dir=_a.dir,tutorial=_a.tutorial,taskPosition=_a.taskPosition;
6+
return{type:_types_1.TEST_RUN,payload:{taskTests:taskTests,dir:dir,tutorial:tutorial,taskPosition:taskPosition}};
67
}
78
exports.testRun=testRun;
89
functiontestResult(result){
9-
varactions=store_1.default.getState().taskActions;
10-
return{type:_types_1.TEST_RESULT,payload:{result:result,actions:actions}};
10+
vartaskActions=store_1.default.getState().taskActions;
11+
return{type:_types_1.TEST_RESULT,payload:{result:result,taskActions:taskActions}};
1112
}
1213
exports.testResult=testResult;
1314
functiontestComplete(){
@@ -19,7 +20,9 @@ function testSave() {
1920
}
2021
exports.testSave=testSave;
2122
functiontestsLoad(pagePosition){
22-
var_a=store_1.default.getState(),tasks=_a.tasks,progress=_a.progress;
23-
return{type:_types_1.TESTS_LOAD,payload:{pagePosition:pagePosition,tasks:tasks,progress:progress}};
23+
var_a=store_1.default.getState(),tasks=_a.tasks,progress=_a.progress,tutorial=_a.tutorial,dir=_a.dir;
24+
return{type:_types_1.TESTS_LOAD,payload:{
25+
pagePosition:pagePosition,tasks:tasks,progress:progress,tutorial:tutorial,dir:dir
26+
}};
2427
}
2528
exports.testsLoad=testsLoad;

‎lib/components/Start/Checks/SetupChecks.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ var SetupChecks = function (_a) {
1212
if(setup.passed){
1313
returnnull;
1414
}
15-
vardir=setup.dir,packageJson=setup.packageJson,tutorial=setup.tutorial;
16-
varstatus=[dir,packageJson,tutorial];
17-
return(React.createElement(Card_1.Card,{className:'cr-check'},React.createElement(Card_1.CardHeader,{title:'Setup Checks',subtitle:'CodeRoad requires a brief setup'}),React.createElement(Card_1.CardText,null,React.createElement(DynamicStepper_1.default,{status:status},React.createElement(StepCheck_1.default,{label:'open a directory',completed:dir},React.createElement("p",null,"File -> Open (a new folder)"),React.createElement("br",null),React.createElement(FlatButton_1.default,{label:'Open Directory',secondary:true,onTouchTap:action_setup_1.openDirectory})),React.createElement(StepCheck_1.default,{label:'package.json',completed:packageJson},"Create a package.json by running",React.createElement("br",null),React.createElement("code",null,"> npm init -y`"),React.createElement("br",null),React.createElement(FlatButton_1.default,{label:'Create package.json',secondary:true,onTouchTap:action_setup_1.createPackageJson})),React.createElement(StepCheck_1.default,{label:'install a tutorial',completed:tutorial},"Install a tutorial using npm. For example:",React.createElement("br",null),React.createElement("code",null,"> npm install --save-dev coderoad-functional-school"),React.createElement("br",null)))),React.createElement(Card_1.CardActions,null,React.createElement(VerifyButton_1.default,null))));
15+
varhasDir=setup.hasDir,hasPackageJson=setup.hasPackageJson,hasTutorial=setup.hasTutorial;
16+
varstatus=[hasDir,hasPackageJson,hasTutorial];
17+
return(React.createElement(Card_1.Card,{className:'cr-check'},React.createElement(Card_1.CardHeader,{title:'Setup Checks',subtitle:'CodeRoad requires a brief setup'}),React.createElement(Card_1.CardText,null,React.createElement(DynamicStepper_1.default,{status:status},React.createElement(StepCheck_1.default,{label:'open a directory',completed:hasDir},React.createElement("p",null,"File -> Open (a new folder)"),React.createElement("br",null),React.createElement(FlatButton_1.default,{label:'Open Directory',secondary:true,onTouchTap:action_setup_1.openDirectory})),React.createElement(StepCheck_1.default,{label:'package.json',completed:hasPackageJson},"Create a package.json by running",React.createElement("br",null),React.createElement("code",null,"> npm init -y`"),React.createElement("br",null),React.createElement(FlatButton_1.default,{label:'Create package.json',secondary:true,onTouchTap:action_setup_1.createPackageJson})),React.createElement(StepCheck_1.default,{label:'install a tutorial',completed:hasTutorial},"Install a tutorial using npm. For example:",React.createElement("br",null),React.createElement("code",null,"> npm install --save-dev coderoad-functional-school"),React.createElement("br",null)))),React.createElement(Card_1.CardActions,null,React.createElement(VerifyButton_1.default,null))));
1818
};
1919
Object.defineProperty(exports,"__esModule",{value:true});
2020
exports.default=SetupChecks;

‎lib/components/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"use strict";
2+
varAlert_1=require('./Alert');
3+
exports.Alert=Alert_1.default;
4+
varAppMenu_1=require('./AppMenu');
5+
exports.AppMenu=AppMenu_1.default;
6+
varFinalPage_1=require('./FinalPage');
7+
exports.FinalPage=FinalPage_1.default;
8+
varPage_1=require('./Page');
9+
exports.Page=Page_1.default;
10+
varProgress_1=require('./Progress');
11+
exports.Progress=Progress_1.default;
12+
varRoutes_1=require('./Routes');
13+
exports.Routes=Routes_1.default;
14+
varStart_1=require('./Start');
15+
exports.Start=Start_1.default;
16+
varTutorials_1=require('./Tutorials');
17+
exports.Tutorials=Tutorials_1.default;
18+
varMarkdown_1=require('./common/Markdown');
19+
exports.Markdown=Markdown_1.default;
20+
varRouteButton_1=require('./common/RouteButton');
21+
exports.RouteButton=RouteButton_1.default;
22+
varContentCard_1=require('./common/ContentCard');
23+
exports.ContentCard=ContentCard_1.default;

‎lib/reducers/checks/action-setup.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,14 @@
22
varpath_1=require('path');
33
vareditor_1=require('../../atom/editor');
44
vareditor_2=require('../../atom/editor');
5-
varstore_1=require('../../store');
65
varactions_1=require('../../actions');
6+
varstore_1=require('../../store');
77
varpackageData="{\n \"name\": \"demo\",\n \"dependencies\": {\n \"coderoad-functional-school\": \"^0.2.1\"\n }\n}";
8-
functioncreatePackageJson(){
9-
vardir=store_1.default.getState().dir;
8+
functioncreatePackageJson(dir){
109
varpackagePath=path_1.join(dir,'package.json');
1110
returnnewPromise(function(resolve,reject){
1211
editor_1.open(packagePath);
13-
setTimeout(function(){
14-
resolve();
15-
});
12+
setTimeout(function(){returnresolve();});
1613
}).then(function(){
1714
editor_1.set(packageData);
1815
store_1.default.dispatch(actions_1.setupVerify());

‎lib/reducers/checks/index.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,17 @@ var _checks = {
99
xcode:false,
1010
},
1111
setup:{
12-
dir:false,
13-
packageJson:false,
14-
tutorial:false,
12+
hasDir:false,
13+
hasPackageJson:false,
14+
hasTutorial:false,
1515
}
1616
};
1717
functionchecksReducer(checks,action){
1818
if(checks===void0){checks=_checks;}
1919
switch(action.type){
2020
case_types_1.SETUP_VERIFY:
21-
returnverify_1.default();
21+
var_a=action.payload,dir=_a.dir,packageJson=_a.packageJson;
22+
returnverify_1.default(dir,packageJson);
2223
default:
2324
returnchecks;
2425
}

‎lib/reducers/checks/verify.js

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
"use strict";
22
varcheck_system_1=require('./check-system');
3-
varstore_1=require('../../store');
43
varcheck_1=require('../tutorial-list/check');
54
functionallTrue(obj){
65
returnObject.values(obj).every(function(x){returnx===true;});
76
}
8-
functionsetupVerify(){
9-
vardir=!!store_1.default.getState().dir;
10-
varpackageJson=false;
11-
vartutorial=false;
12-
varpj=store_1.default.getState().packageJson;
13-
if(dir){
14-
packageJson=!!pj;
7+
functionsetupVerify(dir,packageJson){
8+
varhasPackageJson=false;
9+
varhasTutorial=false;
10+
varhasDir=!!dir;
11+
if(hasDir){
12+
hasPackageJson=!!packageJson;
1513
}
16-
if(dir&&packageJson){
17-
tutorial=!!check_1.searchForTutorials(pj.dependencies).length||!!check_1.searchForTutorials(pj.devDependencies).length;
14+
if(hasDir&&hasPackageJson){
15+
hasTutorial=!!check_1.searchForTutorials(dir,packageJson.dependencies).length||
16+
!!check_1.searchForTutorials(dir,packageJson.devDependencies).length;
1817
}
1918
varchecks={
2019
system:{
@@ -23,9 +22,9 @@ function setupVerify() {
2322
xcode:!!check_system_1.requiresXCode(),
2423
},
2524
setup:{
26-
dir:dir,
27-
packageJson:packageJson,
28-
tutorial:tutorial,
25+
hasDir:hasDir,
26+
hasPackageJson:hasPackageJson,
27+
hasTutorial:hasTutorial,
2928
}
3029
};
3130
checks.system.passed=allTrue(checks.system);

‎lib/reducers/page/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ function pageReducer(p, action) {
1010
if(p===void0){p=_page;}
1111
switch(action.type){
1212
case_types_1.PAGE_SET:
13-
varpagePosition=action.payload.pagePosition;
14-
var_a=action.payload.tutorial.pages[pagePosition],title=_a.title,description=_a.description,onPageComplete=_a.onPageComplete,completed=_a.completed;
13+
var_a=action.payload,pagePosition=_a.pagePosition,tutorial=_a.tutorial;
14+
var_b=tutorial.pages[pagePosition],title=_b.title,description=_b.description,onPageComplete=_b.onPageComplete,completed=_b.completed;
1515
editor_1.clearConsole();
1616
return{
1717
title:title,

‎lib/reducers/progress/index.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,24 @@ function progressReducer(progress, action) {
99
if(progress===void0){progress=_progress;}
1010
switch(action.type){
1111
case_types_1.PROGRESS_LOAD:
12-
varsaved=local_storage_1.loadProgressFromLocalStorage();
12+
vartutorial=action.payload.tutorial;
13+
varsaved=local_storage_1.loadProgressFromLocalStorage(tutorial);
1314
if(saved){
1415
returnsaved;
1516
}
1617
return{
1718
completed:false,
18-
pages:action.payload.tutorial.pages.map(function(){returnfalse;})
19+
pages:tutorial.pages.map(function(){returnfalse;})
1920
};
2021
case_types_1.COMPLETE_PAGE:
21-
varpagePosition=action.payload.pagePosition;
22+
var_a=action.payload,tutorial=_a.tutorial,pagePosition=_a.pagePosition;
2223
progress.pages[pagePosition]=true;
23-
local_storage_1.saveToLocalStorage(progress);
24+
local_storage_1.saveToLocalStorage(tutorial,progress);
2425
returnprogress;
2526
case_types_1.COMPLETE_TUTORIAL:
27+
vartutorial=action.payload.tutorial.tutorial;
2628
progress.completed=true;
27-
local_storage_1.saveToLocalStorage(progress);
29+
local_storage_1.saveToLocalStorage(tutorial,progress);
2830
returnprogress;
2931
default:
3032
returnprogress;

‎lib/reducers/progress/local-storage.js

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
"use strict";
2-
varstore_1=require('../../store');
3-
functiongetLocalStorageKey(){
4-
return'coderoad:'+store_1.default.getState().tutorial.name;
2+
functiongetLocalStorageKey(tutorial){
3+
return'coderoad:'+tutorial.name;
54
}
6-
functionsaveToLocalStorage(progress){
5+
functionsaveToLocalStorage(tutorial,progress){
76
try{
87
window.localStorage
9-
.setItem(getLocalStorageKey(),JSON.stringify(progress));
8+
.setItem(getLocalStorageKey(tutorial),JSON.stringify(progress));
109
}
1110
catch(e){
1211
console.log('Error saving progress:',e);
1312
}
1413
}
1514
exports.saveToLocalStorage=saveToLocalStorage;
16-
functionloadProgressFromLocalStorage(){
17-
varsavedProgress=JSON.parse(window.localStorage.getItem(getLocalStorageKey())||null);
15+
functionloadProgressFromLocalStorage(tutorial){
16+
varsavedProgress=JSON.parse(window.localStorage.getItem(getLocalStorageKey(tutorial))||null);
1817
if(savedProgress){
1918
returnsavedProgress;
2019
}

‎lib/reducers/task-actions/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ function taskActionsReducer(taskActions, action) {
2929
handleTaskActions(actions);
3030
returnactions;
3131
case_types_1.TEST_RESULT:
32-
actions=action.payload.actions||[];
32+
actions=action.payload.taskActions||[];
3333
varnextTaskPosition=action.payload.result.taskPosition;
3434
vartimes=nextTaskPosition-taskTracker;
3535
if(times>0){

‎lib/reducers/task-tests/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ function taskTestsReducer(taskTests, action) {
55
if(taskTests===void0){taskTests='';}
66
switch(action.type){
77
case_types_1.TESTS_LOAD:
8-
return[].concat.apply([],action.payload.tasks.map(function(task){returntask.tests||[];})).reduce(function(output,file){
8+
var_a=action.payload,tutorial=_a.tutorial,tasks=_a.tasks;
9+
return[].concat.apply([],tasks.map(function(task){returntask.tests||[];})).reduce(function(output,file){
910
try{
1011
output+=fs_1.readFileSync(file,'utf8')+'\n';
1112
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"use strict";
2+
varpath_1=require('path');
3+
varsystem_1=require('../../services/system');
4+
functionconfigTestString(dir,tutorial,config,name,testPath){
5+
if(system_1.isWindows){
6+
testPath=testPath.split('/').join('\\');
7+
}
8+
if(tutorial&&tutorial.config.dir){
9+
testPath=path_1.join(tutorial.config.dir,testPath);
10+
}
11+
else{
12+
testPath=path_1.join(dir,'node_modules',name,testPath);
13+
}
14+
if(tutorial.config.testSuffix){
15+
testPath+=tutorial.config.testSuffix;
16+
}
17+
returntestPath;
18+
}
19+
functionconfigTaskTests(dir,tutorial,tasks){
20+
varconfig=tutorial.config,name=tutorial.name;
21+
return!tasks ?[] :tasks.map(function(task){
22+
if(task.tests){
23+
task.tests=task.tests.map(function(testPath){
24+
if(typeoftestPath==='string'){
25+
returnconfigTestString(dir,tutorial,config,name,testPath);
26+
}
27+
else{
28+
console.error('Invalid task test',testPath);
29+
}
30+
});
31+
}
32+
returntask;
33+
});
34+
}
35+
Object.defineProperty(exports,"__esModule",{value:true});
36+
exports.default=configTaskTests;

‎lib/reducers/tasks/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
var_types_1=require('../../actions/_types');
3-
varconfig_task_tests_1=require('../task-tests/config-task-tests');
3+
varconfig_task_tests_1=require('./config-task-tests');
44
var_tasks=[{
55
actions:[],
66
completed:false,
@@ -12,8 +12,8 @@ function tasksReducer(tasks, action) {
1212
if(tasks===void0){tasks=_tasks;}
1313
switch(action.type){
1414
case_types_1.PAGE_SET:
15-
var_a=action.payload,tutorial=_a.tutorial,pagePosition=_a.pagePosition;
16-
returnconfig_task_tests_1.default(tutorial.pages[pagePosition].tasks||[]);
15+
var_a=action.payload,dir=_a.dir,tutorial=_a.tutorial,pagePosition=_a.pagePosition;
16+
returnconfig_task_tests_1.default(dir,tutorial,tutorial.pages[pagePosition].tasks||[]);
1717
default:
1818
returntasks;
1919
}

‎lib/reducers/test-run/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ function runTestReducer(testRun, action) {
1111
varcurrent=newDate().getTime();
1212
if(current-previous>pageTimeout){
1313
previous=current;
14-
returnrun_1.runTaskTests();
14+
var_a=action.payload,taskTests=_a.taskTests,dir=_a.dir,tutorial=_a.tutorial,taskPosition=_a.taskPosition;
15+
returnrun_1.default(taskTests,dir,tutorial,taskPosition);
1516
}
1617
returnfalse;
1718
case_types_1.TEST_COMPLETE:

‎lib/reducers/test-run/parse-loaders.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
"use strict";
22
varpath_1=require('path');
33
varfs_1=require('fs');
4-
varstore_1=require('../../store');
54
varcomments={
65
py:'#',
76
};
@@ -12,7 +11,7 @@ function loaderRegex(fileType) {
1211
}
1312
returnnewRegExp("^"+comment+" ?load\\(['\"](.+)['\"](, ?true)?\\)",'m');
1413
}
15-
functionparseLoaders(data,fileType){
14+
functionparseLoaders(data,fileType,tutorial,dir){
1615
vari=-1;
1716
varlines=data.split('\n');
1817
varfilesLoaded=[];
@@ -28,11 +27,10 @@ function parseLoaders(data, fileType) {
2827
}
2928
varpathToFile=null;
3029
if(loader[2]){
31-
vartutorialDir=store_1.default.getState().tutorial.config.dir;
30+
vartutorialDir=tutorial.config.dir;
3231
pathToFile=path_1.normalize(path_1.join(tutorialDir,fileToLoad));
3332
}
3433
else{
35-
vardir=store_1.default.getState().dir;
3634
pathToFile=path_1.normalize(path_1.join(dir,fileToLoad));
3735
}
3836
try{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp