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

Commit4562913

Browse files
committed
setup progress reset button
1 parent9559bff commit4562913

File tree

10 files changed

+114
-20
lines changed

10 files changed

+114
-20
lines changed

‎CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
44

55
##[0.12.3] - WIP
66
- improved page open. uses`onDidOpen` callback
7+
- progress reset button
78
- improved documentation, tests
89

910
##[0.12.2] - 2016-08-25

‎lib/actions.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ var actions_5 = require('./modules/page/actions');
1818
exports.pageSet=actions_5.pageSet;
1919
exports.pageNext=actions_5.pageNext;
2020
varactions_6=require('./modules/progress/actions');
21-
exports.progressLoad=actions_6.progressLoad;
2221
exports.progressCompletePage=actions_6.progressCompletePage;
22+
exports.progressLoad=actions_6.progressLoad;
23+
exports.progressReset=actions_6.progressReset;
2324
varactions_7=require('./modules/route/actions');
2425
exports.routeSet=actions_7.routeSet;
2526
varactions_8=require('./modules/setup/actions');

‎lib/components/Progress/index.js

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var actions_1 = require('../../actions');
1010
varProgressPage_1=require('./ProgressPage');
1111
varList_1=require('material-ui/List');
1212
varPaper_1=require('material-ui/Paper');
13+
varRaisedButton_1=require('material-ui/RaisedButton');
1314
varSubheader_1=require('material-ui/Subheader');
1415
varstyles={
1516
page:{
@@ -18,19 +19,35 @@ var styles = {
1819
list:{
1920
margin:'5px',
2021
},
22+
options:{
23+
display:'flex',
24+
justifyContent:'center',
25+
marginTop:'10px',
26+
opacity:'0.6',
27+
},
2128
};
2229
varProgress=(function(_super){
2330
__extends(Progress,_super);
2431
functionProgress(){
2532
_super.apply(this,arguments);
2633
}
34+
Progress.prototype.verifyReset=function(){
35+
varreset=confirm('Are you sure you want to erase your progress?');
36+
if(reset){
37+
this.props.progressReset();
38+
}
39+
};
2740
Progress.prototype.render=function(){
2841
var_a=this.props,info=_a.info,tutorial=_a.tutorial;
29-
return(React.createElement(Paper_1.default,{style:styles.page},
30-
React.createElement(List_1.List,{style:styles.list},
31-
React.createElement(Subheader_1.default,null,info.title),
32-
tutorial.pages.map(function(page,index){return(React.createElement(ProgressPage_1.default,{key:index,index:index,page:page}));}))
33-
));
42+
return(React.createElement("div",null,
43+
React.createElement(Paper_1.default,{style:styles.page},
44+
React.createElement(List_1.List,{style:styles.list},
45+
React.createElement(Subheader_1.default,null,info.title),
46+
tutorial.pages.map(function(page,index){return(React.createElement(ProgressPage_1.default,{key:index,index:index,page:page}));}))
47+
),
48+
React.createElement("div",{style:styles.options},
49+
React.createElement(RaisedButton_1.default,{label:"Reset",onClick:this.verifyReset.bind(this)})
50+
)));
3451
};
3552
Progress.prototype.componentWillMount=function(){
3653
this.props.progressLoad();
@@ -42,7 +59,8 @@ var mapStateToProps = function (state) { return ({
4259
tutorial:state.tutorial,
4360
});};
4461
varmapDispatchToProps={
45-
progressLoad:actions_1.progressLoad
62+
progressLoad:actions_1.progressLoad,
63+
progressReset:actions_1.progressReset
4664
};
4765
Object.defineProperty(exports,"__esModule",{value:true});
4866
exports.default=react_redux_1.connect(mapStateToProps,mapDispatchToProps)(Progress);

‎lib/modules/progress/actions.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,10 @@ function progressCompleteTutorial(completed) {
4444
};
4545
}
4646
exports.progressCompleteTutorial=progressCompleteTutorial;
47+
functionprogressReset(){
48+
returnfunction(dispatch,getState){
49+
vartutorial=getState().tutorial;
50+
dispatch({type:types_1.PROGRESS_RESET,payload:{tutorial:tutorial}});
51+
};
52+
}
53+
exports.progressReset=progressReset;

‎lib/modules/progress/index.js

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,41 @@
11
"use strict";
2-
varreducer_1=require('./reducer');
3-
exports.reducer=reducer_1.default;
2+
vartypes_1=require('./types');
3+
varlocal_storage_1=require('./utils/local-storage');
4+
exports._progress={
5+
completed:false,
6+
pages:[]
7+
};
8+
functiongetReset(pages){
9+
return{
10+
completed:false,
11+
pages:pages.map(function(){returnfalse;})
12+
};
13+
}
14+
functionprogress(progress,action){
15+
if(progress===void0){progress=exports._progress;}
16+
switch(action.type){
17+
casetypes_1.PROGRESS_LOAD:
18+
varsaved=local_storage_1.loadProgressFromLocalStorage(action.payload.tutorial);
19+
if(saved){
20+
returnsaved;
21+
}
22+
returngetReset(action.payload.tutorial.pages);
23+
casetypes_1.PROGRESS_COMPLETE_PAGE:
24+
var_a=action.payload,tutorial=_a.tutorial,pagePosition=_a.pagePosition,completed=_a.completed;
25+
progress.pages[pagePosition]=completed;
26+
local_storage_1.saveToLocalStorage(tutorial,progress);
27+
returnprogress;
28+
casetypes_1.PROGRESS_COMPLETE_TUTORIAL:
29+
progress.completed=action.payload.completed;
30+
local_storage_1.saveToLocalStorage(action.payload.tutorial,progress);
31+
returnprogress;
32+
casetypes_1.PROGRESS_RESET:
33+
varreset=getReset(action.payload.tutorial.pages);
34+
local_storage_1.saveToLocalStorage(action.payload.tutorial,reset);
35+
returnreset;
36+
default:
37+
returnprogress;
38+
}
39+
}
40+
Object.defineProperty(exports,"__esModule",{value:true});
41+
exports.default=progress;

‎lib/modules/progress/types.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ exports.PROGRESS_COMPLETE_PAGE = 'PROGRESS_COMPLETE_PAGE';
33
exports.PROGRESS_COMPLETE_TUTORIAL='PROGRESS_COMPLETE_TUTORIAL';
44
exports.PROGRESS_LOAD='PROGRESS_LOAD';
55
exports.PROGRESS_PAGE_POSITION='PROGRESS_PAGE_POSITION';
6+
exports.PROGRESS_RESET='PROGRESS_RESET';

‎lib/reducers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var window_1 = require('./modules/window');
1515
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,
18-
packageJson:setup_1.packageJson,pagePosition:page_1.pagePosition,progress:progress_1.reducer,route:route_1.reducer,
18+
packageJson:setup_1.packageJson,pagePosition:page_1.pagePosition,progress:progress_1.default,route:route_1.reducer,
1919
tutorial:tutorial_1.reducer,tutorials:tutorials_1.reducer,
2020
taskActions:page_1.taskActions,taskPosition:tests_1.taskPosition,testRun:tests_1.testRun,window:window_1.reducer
2121
});

‎src/actions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export {editorDevToolsToggle, editorOpen, editorInsert} from './modules/editor/a
33
export{editorSave,editorSet,editorWriteFileFromFile,editorWriteFileFromContent}from'./modules/editor/actions';
44
export{hintPositionSet}from'./modules/hints/actions';
55
export{pageSet,pageNext}from'./modules/page/actions';
6-
export{progressLoad,progressCompletePage}from'./modules/progress/actions';
6+
export{progressCompletePage,progressLoad,progressReset}from'./modules/progress/actions';
77
export{routeSet}from'./modules/route/actions';
88
export{setupVerify,setupPackage}from'./modules/setup/actions';
99
export{testLoad,testRun,testResult,testComplete}from'./modules/tests/actions';

‎src/components/Progress/index.tsx

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

4-
import{progressLoad}from'../../actions';
4+
import{progressLoad,progressReset}from'../../actions';
55
importProgressPagefrom'./ProgressPage';
66
import{List}from'material-ui/List';
77
importPaperfrom'material-ui/Paper';
8+
importRaisedButtonfrom'material-ui/RaisedButton';
89
importSubheaderfrom'material-ui/Subheader';
910

1011
conststyles={
@@ -14,14 +15,28 @@ const styles = {
1415
list:{
1516
margin:'5px',
1617
},
18+
options:{
19+
display:'flex',
20+
justifyContent:'center',
21+
marginTop:'10px',
22+
opacity:'0.6',
23+
},
1724
};
1825

1926
classProgressextendsReact.Component<{
20-
info:Tutorial.Info,tutorial:CR.Tutorial,progressLoad:()=>any,
27+
info:Tutorial.Info,tutorial:CR.Tutorial,
28+
progressLoad:()=>any,progressReset:()=>any
2129
},{}>{
30+
publicverifyReset(){
31+
constreset=confirm('Are you sure you want to erase your progress?');
32+
if(reset){
33+
this.props.progressReset();
34+
}
35+
}
2236
publicrender(){
2337
const{info, tutorial}=this.props;
2438
return(
39+
<div>
2540
<Paperstyle={styles.page}>
2641
<Liststyle={styles.list}>
2742
<Subheader>{info.title}</Subheader>
@@ -35,6 +50,13 @@ class Progress extends React.Component<{
3550
}
3651
</List>
3752
</Paper>
53+
<divstyle={styles.options}>
54+
<RaisedButton
55+
label="Reset"
56+
onClick={this.verifyReset.bind(this)}
57+
/>
58+
</div>
59+
</div>
3860
);
3961
}
4062
privatecomponentWillMount(){
@@ -48,7 +70,8 @@ const mapStateToProps = state => ({
4870
});
4971

5072
constmapDispatchToProps={
51-
progressLoad
73+
progressLoad,
74+
progressReset
5275
};
5376

5477
exportdefaultconnect(mapStateToProps,mapDispatchToProps)(Progress);

‎src/modules/progress/index.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ export const _progress: CR.Progress = {
66
pages:[]
77
};
88

9+
functiongetReset(pages:boolean[]){
10+
return{
11+
completed:false,
12+
pages:pages.map(()=>false)
13+
};
14+
}
15+
916
/**
1017
* Progress reducer saves local tutorial progress
1118
*@param {} progress=_progress
@@ -22,10 +29,7 @@ export default function progress(
2229
constsaved=loadProgressFromLocalStorage(action.payload.tutorial);
2330
if(saved){returnsaved;}
2431
// set progress defaults
25-
return{
26-
completed:false,
27-
pages:action.payload.tutorial.pages.map(()=>false)
28-
};
32+
returngetReset(action.payload.tutorial.pages);
2933

3034
casePROGRESS_COMPLETE_PAGE:
3135
const{tutorial, pagePosition, completed}=action.payload;
@@ -39,8 +43,9 @@ export default function progress(
3943
returnprogress;
4044

4145
casePROGRESS_RESET:
42-
saveToLocalStorage(action.payload.tutorial,_progress);
43-
return_progress;
46+
constreset=getReset(action.payload.tutorial.pages);
47+
saveToLocalStorage(action.payload.tutorial,reset);
48+
returnreset;
4449

4550
default:
4651
returnprogress;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp