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

Commit46e3bf8

Browse files
committed
refactor selectors
1 parent761af3a commit46e3bf8

File tree

14 files changed

+35
-31
lines changed

14 files changed

+35
-31
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ var index_1 = require('../../index');
1919
vartaskCheckbox_1=require('./taskCheckbox');
2020
varList_1=require('material-ui/List');
2121
varcolors_1=require('material-ui/styles/colors');
22+
varselectors_1=require('../../../selectors');
2223
varstyles={
2324
task:{
2425
margin:'5px',
@@ -52,6 +53,7 @@ var Task = (function (_super) {
5253
react_redux_1.connect(function(state,props){return({
5354
testRun:state.testRun,
5455
isCompletedTask:state.taskPosition>props.index,
56+
task:selectors_1.taskByIndexSelector(state,props)
5557
});}),
5658
__metadata('design:paramtypes',[])
5759
],Task);

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ var Tasks = (function (_super) {
3434
Tasks.prototype.render=function(){
3535
var_a=this.props,tasks=_a.tasks,completed=_a.completed;
3636
varbackgroundColor=completed ?colors_1.lightGreen200 :'white';
37-
return(React.createElement(Card_1.Card,{style:{backgroundColor:backgroundColor,margin:margin}},React.createElement(List_1.List,null,React.createElement(Subheader_1.default,null,"Tasks"),tasks.map(function(task,index){return(React.createElement(Task_1.default,{key:index,index:index,task:task}));})),React.createElement("div",{ref:'listEnd'})));
37+
return(React.createElement(Card_1.Card,{style:{backgroundColor:backgroundColor,margin:margin}},React.createElement(List_1.List,null,React.createElement(Subheader_1.default,null,"Tasks"),tasks.map(function(task,index){
38+
returnReact.createElement(Task_1.default,{key:index,index:index});
39+
}),"}"),React.createElement("div",{ref:'listEnd'})));
3840
};
3941
Tasks=__decorate([
4042
react_redux_1.connect(function(state){return({

‎lib/modules/tutorial/reducer.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ function tutorialReducer(t, action) {
1818
var_a=action.payload,name_1=_a.name,dir=_a.dir;
1919
varpackagePath=path_1.join(dir,'node_modules',name_1);
2020
varpackageJson=require(path_1.join(packagePath,'package.json'));
21-
console.log(packageJson);
2221
varconfig=config_1.tutorialConfig(packageJson,dir);
2322
varcoderoadJsonPath=path_1.join(packagePath,packageJson.main);
2423
var_b=require(coderoadJsonPath),info=_b.info,pages=_b.pages;

‎lib/selectors/hints.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
varreselect_1=require('reselect');
33
vartasks_1=require('./tasks');
4-
exports.hintsSelector=reselect_1.createSelector(tasks_1.taskSelector,function(task){returntask&&task.hints ?task.hints :[];});
4+
exports.hintsSelector=reselect_1.createSelector(tasks_1.currentTaskSelector,function(task){returntask&&task.hints ?task.hints :[];});
55
exports.hintSelector=reselect_1.createSelector(exports.hintsSelector,function(state){returnstate.hintPosition;},function(hints,hintPosition){return(hintPosition>=0&&hints&&hints.length) ?
66
hints[hintPosition] :null;});
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
"use strict";
2-
varhints_1=require('./selectors/hints');
2+
varhints_1=require('./hints');
33
exports.hintsSelector=hints_1.hintsSelector;
44
exports.hintSelector=hints_1.hintSelector;
5-
varpage_1=require('./selectors/page');
5+
varpage_1=require('./page');
66
exports.pageSelector=page_1.pageSelector;
77
exports.pageCompletedSelector=page_1.pageCompletedSelector;
8-
vartasks_1=require('./selectors/tasks');
8+
vartasks_1=require('./tasks');
99
exports.tasksSelector=tasks_1.tasksSelector;
10-
exports.taskPositionSelector=tasks_1.taskPositionSelector;
11-
exports.taskSelector=tasks_1.taskSelector;
10+
exports.currentTaskSelector=tasks_1.currentTaskSelector;
1211
exports.visibleTasksSelector=tasks_1.visibleTasksSelector;
1312
exports.taskProgressSelector=tasks_1.taskProgressSelector;
14-
varpackageJson_1=require('./selectors/packageJson');
13+
exports.taskByIndexSelector=tasks_1.taskByIndexSelector;
14+
varpackageJson_1=require('./packageJson');
1515
exports.configSelector=packageJson_1.configSelector;

‎lib/selectors/tasks.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
varreselect_1=require('reselect');
33
varpage_1=require('./page');
44
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 ?
5+
exports.currentTaskSelector=reselect_1.createSelector(exports.tasksSelector,function(state){returnstate.taskPosition;},function(tasks,taskPosition){returntasks.length&&taskPosition<=tasks.length-1 ?
76
tasks[taskPosition] :null;});
7+
exports.taskByIndexSelector=reselect_1.createSelector(exports.tasksSelector,function(state,props){returnprops.index;},function(tasks,index){returntasks[index];});
88
exports.visibleTasksSelector=reselect_1.createSelector(exports.tasksSelector,function(state){returnstate.taskPosition;},function(tasks,taskPosition){returntasks.slice(0,taskPosition+1);});
99
exports.taskProgressSelector=reselect_1.createSelector(exports.tasksSelector,function(state){returnstate.taskPosition;},function(tasks,taskPosition){return(taskPosition/tasks.length)*100;});

‎src/components/Page/Task/index.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {Markdown} from '../../index';
44
importTaskCheckboxfrom'./taskCheckbox';
55
import{ListItem}from'material-ui/List';
66
import{lightGreen200,orange200}from'material-ui/styles/colors';
7+
import{taskByIndexSelector}from'../../../selectors';
78

89
conststyles={
910
task:{
@@ -28,9 +29,10 @@ const styles = {
2829
@connect((state,props)=>({
2930
testRun:state.testRun,
3031
isCompletedTask:state.taskPosition>props.index,
32+
task:taskByIndexSelector(state,props)
3133
}))
3234
exportdefaultclassTaskextendsReact.Component<{
33-
task:CR.Task,index:number,testRun?:boolean,
35+
task?:CR.Task,index:number,testRun?:boolean,
3436
isCurrentTask?:boolean,isCompletedTask?:boolean
3537
},{}>{
3638
render(){

‎src/components/Page/Tasks/index.tsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {Card} from 'material-ui/Card';
66
importSubheaderfrom'material-ui/Subheader';
77
importTaskfrom'../Task';
88
import{lightGreen200}from'material-ui/styles/colors';
9-
import{visibleTasksSelector,pageCompletedSelector}from'../../../selectors';
9+
import{pageCompletedSelector,visibleTasksSelector}from'../../../selectors';
1010

1111
constmargin='10px 5px';
1212

@@ -32,13 +32,9 @@ export default class Tasks extends React.Component<{
3232
<List>
3333
<Subheader>Tasks</Subheader>
3434

35-
{tasks.map((task:CR.Task,index:number)=>(
36-
<Task
37-
key={index}
38-
index={index}
39-
task={task}
40-
/>)
41-
)}
35+
{tasks.map((task,index:number)=>{
36+
return<Taskkey={index}index={index}/>;
37+
})}}
4238

4339
</List>
4440
<divref='listEnd'/>

‎src/modules/tutorial/reducer.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ export default function tutorialReducer(
2424
// get tutorial package.json
2525
constpackagePath:string=join(dir,'node_modules',name);
2626
constpackageJson:PackageJson=require(join(packagePath,'package.json'));
27-
console.log(packageJson);
2827

2928
constconfig:Tutorial.Config=tutorialConfig(packageJson,dir);
3029
constcoderoadJsonPath=join(packagePath,packageJson.main);

‎src/selectors.ts

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

‎src/selectors/hints.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import{createSelector}from'reselect';
2-
import{taskSelector}from'./tasks';
2+
import{currentTaskSelector}from'./tasks';
33

44
exportconsthintsSelector=createSelector(
5-
taskSelector,
5+
currentTaskSelector,
66
task=>task&&task.hints ?task.hints :[]
77
);
88

‎src/selectors/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export{hintsSelector,hintSelector}from'./hints';
2+
export{pageSelector,pageCompletedSelector}from'./page';
3+
export{tasksSelector,currentTaskSelector,visibleTasksSelector,taskProgressSelector,taskByIndexSelector}from'./tasks';
4+
export{configSelector}from'./packageJson';

‎src/selectors/tasks.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,19 @@ export const tasksSelector = createSelector(
66
page=>page.tasks
77
);
88

9-
exportconsttaskPositionSelector=state=>state.taskPosition;
10-
11-
exportconsttaskSelector=createSelector(
9+
exportconstcurrentTaskSelector=createSelector(
1210
tasksSelector,
1311
state=>state.taskPosition,
1412
(tasks,taskPosition)=>tasks.length&&taskPosition<=tasks.length-1 ?
1513
tasks[taskPosition] :null
1614
);
1715

16+
exportconsttaskByIndexSelector=createSelector(
17+
tasksSelector,
18+
(state,props)=>props.index,
19+
(tasks,index)=>tasks[index]
20+
);
21+
1822
exportconstvisibleTasksSelector=createSelector(
1923
tasksSelector,
2024
state=>state.taskPosition,

‎tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@
7777
"src/modules/tutorials/reducer.ts",
7878
"src/modules/tutorials/types.ts",
7979
"src/reducers.ts",
80-
"src/selectors.ts",
8180
"src/selectors/hints.ts",
81+
"src/selectors/index.ts",
8282
"src/selectors/packageJson.ts",
8383
"src/selectors/page.ts",
8484
"src/selectors/tasks.ts",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp