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

Commitcf809cd

Browse files
committed
refactor view data into selectors
1 parent6cd7f72 commitcf809cd

File tree

27 files changed

+381
-229
lines changed

27 files changed

+381
-229
lines changed

‎lib/components/Page/Hints/HintButton.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ var React = require('react');
1717
varreact_redux_1=require('react-redux');
1818
varFlatButton_1=require('material-ui/FlatButton');
1919
varactions_1=require('../../../actions');
20+
varselectors_1=require('../../../selectors');
2021
varHintButton=(function(_super){
2122
__extends(HintButton,_super);
2223
functionHintButton(){
@@ -32,7 +33,10 @@ var HintButton = (function (_super) {
3233
}
3334
};
3435
HintButton=__decorate([
35-
react_redux_1.connect(null,function(dispatch){return({
36+
react_redux_1.connect(function(state){return({
37+
hintPosition:state.hintPosition,
38+
hintsLength:selectors_1.hintsSelector(state).length,
39+
});},function(dispatch){return({
3640
hintSet:function(position){returndispatch(actions_1.hintPositionSet(position));},
3741
});}),
3842
__metadata('design:paramtypes',[])

‎lib/components/Page/Hints/index.js

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,53 @@
11
"use strict";
2+
var__extends=(this&&this.__extends)||function(d,b){
3+
for(varpinb)if(b.hasOwnProperty(p))d[p]=b[p];
4+
function__(){this.constructor=d;}
5+
d.prototype=b===null ?Object.create(b) :(__.prototype=b.prototype,new__());
6+
};
7+
var__decorate=(this&&this.__decorate)||function(decorators,target,key,desc){
8+
varc=arguments.length,r=c<3 ?target :desc===null ?desc=Object.getOwnPropertyDescriptor(target,key) :desc,d;
9+
if(typeofReflect==="object"&&typeofReflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);
10+
elsefor(vari=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3 ?d(r) :c>3 ?d(target,key,r) :d(target,key))||r;
11+
returnc>3&&r&&Object.defineProperty(target,key,r),r;
12+
};
13+
var__metadata=(this&&this.__metadata)||function(k,v){
14+
if(typeofReflect==="object"&&typeofReflect.metadata==="function")returnReflect.metadata(k,v);
15+
};
216
varReact=require('react');
17+
varreact_redux_1=require('react-redux');
318
varCard_1=require('material-ui/Card');
419
varindex_1=require('../../index');
520
varHintButton_1=require('./HintButton');
621
varhelp_1=require('material-ui/svg-icons/action/help');
22+
varselectors_1=require('../../../selectors');
723
varstyles={
824
position:'relative',
925
margin:'5px auto 10px',
1026
width:'360px',
1127
textAlign:'center',
1228
};
13-
varHints=function(_a){
14-
vartask=_a.task,hintPosition=_a.hintPosition;
15-
varhints=task&&task.hints ?task.hints :null;
16-
if(hintPosition<0||!hints||!hints.length){
17-
returnnull;
29+
varHints=(function(_super){
30+
__extends(Hints,_super);
31+
functionHints(){
32+
_super.apply(this,arguments);
1833
}
19-
varhint=hints[hintPosition];
20-
return(React.createElement(Card_1.Card,{style:styles},React.createElement(Card_1.CardHeader,{title:'Hints',avatar:React.createElement(help_1.default,null),actAsExpander:true,showExpandableButton:true}),React.createElement(Card_1.CardText,{className:'cr-task-hint',expandable:true},React.createElement(index_1.Markdown,null,hint)),hints.length>1
21-
?React.createElement(Card_1.CardActions,{style:{paddingBottom:'30px !important'},expandable:true,className:'cr-task-hints-actions'},React.createElement(HintButton_1.default,{type:'prev',label:'Previous',hintPosition:hintPosition,hintsLength:hints.length}),React.createElement(HintButton_1.default,{type:'next',label:'Next',hintPosition:hintPosition,hintsLength:hints.length}))
22-
:null));
23-
};
34+
Hints.prototype.render=function(){
35+
var_a=this.props,hint=_a.hint,hints=_a.hints;
36+
if(!hint){
37+
returnnull;
38+
}
39+
return(React.createElement(Card_1.Card,{style:styles},React.createElement(Card_1.CardHeader,{title:'Hints',avatar:React.createElement(help_1.default,null),actAsExpander:true,showExpandableButton:true}),React.createElement(Card_1.CardText,{className:'cr-task-hint',expandable:true},React.createElement(index_1.Markdown,null,hint)),hints.length>1
40+
?React.createElement(Card_1.CardActions,{style:{paddingBottom:'30px !important'},expandable:true,className:'cr-task-hints-actions'},React.createElement(HintButton_1.default,{type:'prev',label:'Previous',hintsLength:hints.length}),React.createElement(HintButton_1.default,{type:'next',label:'Next',hintsLength:hints.length}))
41+
:null));
42+
};
43+
Hints=__decorate([
44+
react_redux_1.connect(function(state){return({
45+
hints:selectors_1.hintsSelector(state),
46+
hint:selectors_1.hintSelector(state),
47+
});}),
48+
__metadata('design:paramtypes',[])
49+
],Hints);
50+
returnHints;
51+
}(React.Component));
2452
Object.defineProperty(exports,"__esModule",{value:true});
2553
exports.default=Hints;
Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
"use strict";
2+
var__extends=(this&&this.__extends)||function(d,b){
3+
for(varpinb)if(b.hasOwnProperty(p))d[p]=b[p];
4+
function__(){this.constructor=d;}
5+
d.prototype=b===null ?Object.create(b) :(__.prototype=b.prototype,new__());
6+
};
7+
var__decorate=(this&&this.__decorate)||function(decorators,target,key,desc){
8+
varc=arguments.length,r=c<3 ?target :desc===null ?desc=Object.getOwnPropertyDescriptor(target,key) :desc,d;
9+
if(typeofReflect==="object"&&typeofReflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);
10+
elsefor(vari=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3 ?d(r) :c>3 ?d(target,key,r) :d(target,key))||r;
11+
returnc>3&&r&&Object.defineProperty(target,key,r),r;
12+
};
13+
var__metadata=(this&&this.__metadata)||function(k,v){
14+
if(typeofReflect==="object"&&typeofReflect.metadata==="function")returnReflect.metadata(k,v);
15+
};
216
varReact=require('react');
17+
varreact_redux_1=require('react-redux');
318
varToolbar_1=require('material-ui/Toolbar');
419
varSave_1=require('./Save');
520
varContinue_1=require('./Continue');
621
varToggleDevTools_1=require('./ToggleDevTools');
22+
varselectors_1=require('../../../selectors');
723
varstyles={
824
zIndex:'5',
925
position:'relative',
@@ -13,10 +29,22 @@ var styles = {
1329
width:'400px',
1430
margin:'0px',
1531
};
16-
exports.PageToolbar=function(_a){
17-
vartasks=_a.tasks,taskPosition=_a.taskPosition,children=_a.children;
18-
return(React.createElement("section",{styles:styles},children,React.createElement(Toolbar_1.Toolbar,null,React.createElement(Toolbar_1.ToolbarGroup,{float:'left'},React.createElement(ToggleDevTools_1.default,null)),React.createElement(Toolbar_1.ToolbarGroup,{float:'right'},taskPosition>=tasks.length ?
19-
React.createElement(Continue_1.default,null) :React.createElement(Save_1.default,null)))));
20-
};
32+
varPageToolbar=(function(_super){
33+
__extends(PageToolbar,_super);
34+
functionPageToolbar(){
35+
_super.apply(this,arguments);
36+
}
37+
PageToolbar.prototype.render=function(){
38+
var_a=this.props,tasksComplete=_a.tasksComplete,children=_a.children;
39+
return(React.createElement("section",{styles:styles},children,React.createElement(Toolbar_1.Toolbar,null,React.createElement(Toolbar_1.ToolbarGroup,{float:'left'},React.createElement(ToggleDevTools_1.default,null)),React.createElement(Toolbar_1.ToolbarGroup,{float:'right'},tasksComplete ?React.createElement(Continue_1.default,null) :React.createElement(Save_1.default,null)))));
40+
};
41+
PageToolbar=__decorate([
42+
react_redux_1.connect(function(state){return({
43+
tasksComplete:selectors_1.taskProgressSelector(state)===100
44+
});}),
45+
__metadata('design:paramtypes',[])
46+
],PageToolbar);
47+
returnPageToolbar;
48+
}(React.Component));
2149
Object.defineProperty(exports,"__esModule",{value:true});
22-
exports.default=exports.PageToolbar;
50+
exports.default=PageToolbar;
Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,46 @@
11
"use strict";
2+
var__extends=(this&&this.__extends)||function(d,b){
3+
for(varpinb)if(b.hasOwnProperty(p))d[p]=b[p];
4+
function__(){this.constructor=d;}
5+
d.prototype=b===null ?Object.create(b) :(__.prototype=b.prototype,new__());
6+
};
7+
var__decorate=(this&&this.__decorate)||function(decorators,target,key,desc){
8+
varc=arguments.length,r=c<3 ?target :desc===null ?desc=Object.getOwnPropertyDescriptor(target,key) :desc,d;
9+
if(typeofReflect==="object"&&typeofReflect.decorate==="function")r=Reflect.decorate(decorators,target,key,desc);
10+
elsefor(vari=decorators.length-1;i>=0;i--)if(d=decorators[i])r=(c<3 ?d(r) :c>3 ?d(target,key,r) :d(target,key))||r;
11+
returnc>3&&r&&Object.defineProperty(target,key,r),r;
12+
};
13+
var__metadata=(this&&this.__metadata)||function(k,v){
14+
if(typeofReflect==="object"&&typeofReflect.metadata==="function")returnReflect.metadata(k,v);
15+
};
216
varReact=require('react');
17+
varreact_redux_1=require('react-redux');
318
varLinearProgress_1=require('material-ui/LinearProgress');
419
varstyle={
520
height:'10px',
621
position:'relative',
722
margin:'0px',
823
};
9-
varProgressBar=function(_a){
10-
vartaskProgress=_a.taskProgress,completed=_a.completed;
11-
if(completed){
12-
returnnull;
24+
varProgressBar=(function(_super){
25+
__extends(ProgressBar,_super);
26+
functionProgressBar(){
27+
_super.apply(this,arguments);
1328
}
14-
return(React.createElement(LinearProgress_1.default,{mode:'determinate',value:taskProgress,style:style}));
15-
};
29+
ProgressBar.prototype.render=function(){
30+
var_a=this.props,completed=_a.completed,taskProgress=_a.taskProgress;
31+
if(completed){
32+
returnnull;
33+
}
34+
return(React.createElement(LinearProgress_1.default,{mode:'determinate',value:taskProgress,style:style}));
35+
};
36+
ProgressBar=__decorate([
37+
react_redux_1.connect(function(state){return({
38+
completed:state.progress.pages[state.pagePosition],
39+
taskProgress:(state.taskPosition/state.tutorial.pages[state.pagePosition].tasks.length)*100
40+
});}),
41+
__metadata('design:paramtypes',[])
42+
],ProgressBar);
43+
returnProgressBar;
44+
}(React.Component));
1645
Object.defineProperty(exports,"__esModule",{value:true});
1746
exports.default=ProgressBar;

‎lib/components/Page/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ var Page = (function (_super) {
3131
_super.apply(this,arguments);
3232
}
3333
Page.prototype.render=function(){
34-
var_a=this.props,page=_a.page,tasks=_a.tasks,taskPosition=_a.taskPosition,hintPosition=_a.hintPosition,testRun=_a.testRun,progress=_a.progress,pagePosition=_a.pagePosition,completed=_a.completed,task=_a.task,visibleTasks=_a.visibleTasks,taskProgress=_a.taskProgress;
35-
return(React.createElement("section",{style:styles,className:'cr-page'},React.createElement(index_1.ContentCard,{title:page.title,content:page.description}),React.createElement(Tasks_1.default,{tasks:tasks.slice(0,taskPosition+1),taskPosition:taskPosition,testRun:testRun,completed:completed,page:page}),React.createElement(PageToolbar_1.default,{tasks:tasks,taskPosition:taskPosition},React.createElement(Hints_1.default,{task:task,hintPosition:hintPosition}),React.createElement(ProgressBar_1.default,{taskProgress:taskProgress,completed:completed}))));
34+
var_a=this.props,page=_a.page,tasks=_a.tasks,taskPosition=_a.taskPosition,testRun=_a.testRun,progress=_a.progress,pagePosition=_a.pagePosition,completed=_a.completed,task=_a.task,taskProgress=_a.taskProgress;
35+
return(React.createElement("section",{style:styles,className:'cr-page'},React.createElement(index_1.ContentCard,{title:page.title,content:page.description}),React.createElement(Tasks_1.default,{tasks:tasks.slice(0,taskPosition+1),taskPosition:taskPosition,testRun:testRun,completed:completed,page:page}),React.createElement(PageToolbar_1.default,{tasks:tasks,taskPosition:taskPosition},React.createElement(Hints_1.default,null),React.createElement(ProgressBar_1.default,null))));
3636
};
3737
Page=__decorate([
3838
react_redux_1.connect(function(state){return({
@@ -41,7 +41,6 @@ var Page = (function (_super) {
4141
testRun:state.testRun,
4242
progress:state.progress,
4343
taskPosition:state.taskPosition,
44-
hintPosition:state.hintPosition,
4544
pagePosition:state.pagePosition,
4645
completed:selectors_1.pageCompletedSelector(state),
4746
task:selectors_1.taskSelector(state),

‎lib/components/Tutorials/UpdateTutorial/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ var UpdateTutorial = (function (_super) {
2929
}
3030
UpdateTutorial.prototype.render=function(){
3131
var_a=this.props,tutorial=_a.tutorial,tutorialUpdate=_a.tutorialUpdate;
32-
return(React.createElement("span",null,React.createElement(update_1.default,{style:styles,color:colors_1.pink500,onTouchTap:tutorialUpdate.bind(this,tutorial.title)}),React.createElement("span",{style:{marginLeft:'10px'}},tutorial.latest)));
32+
return(React.createElement("span",null,React.createElement(update_1.default,{style:styles,color:colors_1.pink500,onTouchTap:tutorialUpdate.bind(this,tutorial.name)}),"``",React.createElement("span",{style:{marginLeft:'10px'}},tutorial.latest)));
3333
};
3434
UpdateTutorial=__decorate([
3535
react_redux_1.connect(null,function(dispatch){return({

‎lib/components/index.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ var Routes_1 = require('./Routes');
1313
exports.Routes=Routes_1.default;
1414
varStart_1=require('./Start');
1515
exports.Start=Start_1.default;
16-
varChecks_1=require('./Start/Checks');
17-
exports.Checks=Checks_1.default;
1816
varTutorials_1=require('./Tutorials');
1917
exports.Tutorials=Tutorials_1.default;
2018
varMarkdown_1=require('./common/Markdown');

‎lib/modules/tutorial/reducer.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var _tutorial = {
1010
packageJson:null,
1111
config:null,
1212
};
13+
varconfigured=[];
1314
functiontutorialReducer(t,action){
1415
if(t===void0){t=_tutorial;}
1516
switch(action.type){
@@ -20,7 +21,10 @@ function tutorialReducer(t, action) {
2021
varconfig=config_1.tutorialConfig(packageJson,dir);
2122
varcoderoadJsonPath=path_1.join(packagePath,packageJson.main);
2223
var_b=require(coderoadJsonPath),info=_b.info,pages=_b.pages;
23-
pages=config_paths_1.default(dir,name_1,config,pages||[]);
24+
if(configured.indexOf(name_1)===-1){
25+
pages=config_paths_1.default(dir,name_1,config,pages||[]);
26+
}
27+
configured.push(name_1);
2428
return{
2529
name:packageJson.name,
2630
info:info,

‎lib/selectors.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
"use strict";
2-
varreselect_1=require('reselect');
3-
exports.pageSelector=function(state){returnstate.tutorial.pages[state.pagePosition];};
4-
exports.tasksSelector=reselect_1.createSelector(exports.pageSelector,function(page){returnpage.tasks;});
5-
exports.taskPositionSelector=function(state){returnstate.taskPosition;};
6-
exports.pageCompletedSelector=function(state){returnstate.progress.pages[state.pagePosition];};
7-
exports.taskSelector=function(state){returnreselect_1.createSelector(exports.tasksSelector,function(tasks){
8-
return(tasks.length<=tasks.length ?exports.tasksSelector(state)[state.taskPosition] :null);
9-
});};
10-
exports.visibleTasksSelector=function(state){returnreselect_1.createSelector(exports.tasksSelector,function(tasks){
11-
console.log(tasks);
12-
returntasks.slice(0,state.taskPosition+1);
13-
});};
14-
exports.taskProgressSelector=function(state){returnreselect_1.createSelector(exports.tasksSelector,function(tasks){return(state.taskPosition/tasks.length)*100;});};
15-
exports.configSelector=function(state){returnstate.packageJson.config;};
2+
varhints_1=require('./selectors/hints');
3+
exports.hintsSelector=hints_1.hintsSelector;
4+
exports.hintSelector=hints_1.hintSelector;
5+
varpage_1=require('./selectors/page');
6+
exports.pageSelector=page_1.pageSelector;
7+
exports.pageCompletedSelector=page_1.pageCompletedSelector;
8+
vartasks_1=require('./selectors/tasks');
9+
exports.tasksSelector=tasks_1.tasksSelector;
10+
exports.taskPositionSelector=tasks_1.taskPositionSelector;
11+
exports.taskSelector=tasks_1.taskSelector;
12+
exports.visibleTasksSelector=tasks_1.visibleTasksSelector;
13+
exports.taskProgressSelector=tasks_1.taskProgressSelector;
14+
varpackageJson_1=require('./selectors/packageJson');
15+
exports.configSelector=packageJson_1.configSelector;

‎lib/selectors/hints.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
"use strict";
2+
varreselect_1=require('reselect');
3+
vartasks_1=require('./tasks');
4+
exports.hintsSelector=reselect_1.createSelector(tasks_1.taskSelector,function(task){returntask&&task.hints ?task.hints :null;});
5+
exports.hintSelector=reselect_1.createSelector(exports.hintsSelector,function(state){returnstate.hintPosition;},function(hints,hintPosition){return(hintPosition>=0&&hints&&hints.length) ?
6+
hints[hintPosition] :null;});

‎lib/selectors/packageJson.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
"use strict";
2+
exports.configSelector=function(state){returnstate.packageJson.config;};

‎lib/selectors/page.js

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

‎lib/selectors/tasks.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
"use strict";
2+
varreselect_1=require('reselect');
3+
varpage_1=require('./page');
4+
exports.tasksSelector=reselect_1.createSelector(page_1.pageSelector,function(page){returnpage.tasks;});
5+
exports.taskPositionSelector=function(state){returnstate.taskPosition;};
6+
exports.taskSelector=reselect_1.createSelector(exports.tasksSelector,function(state){returnstate.taskPosition;},function(tasks,taskPosition){returntasks.length&&taskPosition<=tasks.length-1 ?
7+
tasks[taskPosition] :null;});
8+
exports.visibleTasksSelector=function(state){returnreselect_1.createSelector(exports.tasksSelector,function(tasks){returntasks.slice(0,state.taskPosition+1);});};
9+
exports.taskProgressSelector=reselect_1.createSelector(exports.tasksSelector,function(state){returnstate.taskPosition;},function(tasks,taskPosition){return(taskPosition/tasks.length)*100;});

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp