Skip to content

Commit 2ea2b07

Browse files
committed
change position to number value
1 parent d6096ff commit 2ea2b07

File tree

36 files changed

+165
-207
lines changed

36 files changed

+165
-207
lines changed

lib/actions/_types.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ exports.HINT_POSITION_SET = 'HINT_POSITION_SET';
77
exports.HINT_SHOW = 'HINT_SHOW';
88
exports.PACKAGE_SET = 'PACKAGE_SET';
99
exports.PAGE_SET = 'PAGE_SET';
10-
exports.POSITION_LOAD = 'POSITION_LOAD';
11-
exports.POSITION_SET = 'POSITION_SET';
10+
exports.PAGE_POSITION_LOAD = 'POSITION_LOAD';
11+
exports.PAGE_POSITION_SET = 'POSITION_SET';
1212
exports.PROGRESS_LOAD = 'PROGRESS_LOAD';
1313
exports.ROUTE_SET = 'ROUTE_SET';
1414
exports.SETUP_VERIFY = 'SETUP_VERIFY';

lib/actions/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ exports.hintPositionSet = hint_1.hintPositionSet;
1212
var page_1 = require('./page');
1313
exports.pageSet = page_1.pageSet;
1414
exports.pageNext = page_1.pageNext;
15-
var position_1 = require('./position');
16-
exports.positionLoad = position_1.positionLoad;
17-
exports.positionSet = position_1.positionSet;
15+
exports.pagePositionLoad = page_1.pagePositionLoad;
16+
exports.pagePositionSet = page_1.pagePositionSet;
1817
var route_1 = require('./route');
1918
exports.routeSet = route_1.routeSet;
2019
var setup_1 = require('./setup');

lib/actions/page.js

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,47 @@
22
var test_1 = require('./test');
33
var _types_1 = require('./_types');
44
var store_1 = require('../store');
5-
var _position = {
6-
page: 0,
7-
};
85
function pageNext() {
9-
var position = null;
10-
var page = store_1.default.getState().position.page;
6+
var pagePosition = store_1.default.getState().pagePosition;
117
var pages = store_1.default.getState().tutorial.pages;
12-
if (page < pages.length - 1) {
13-
store_1.default.dispatch(test_1.testsLoad());
14-
position = {
15-
page: page + 1,
8+
if (pagePosition >= pages.length - 1) {
9+
return {
10+
payload: { route: 'final' },
11+
type: _types_1.ROUTE_SET,
1612
};
1713
}
1814
else {
15+
pagePosition = pagePosition + 1;
16+
store_1.default.dispatch(test_1.testsLoad(pagePosition));
1917
return {
20-
payload: { route: 'final' },
21-
type: _types_1.ROUTE_SET,
18+
payload: { pagePosition: pagePosition },
19+
type: _types_1.PAGE_SET,
2220
};
2321
}
24-
return {
25-
payload: { position: position },
26-
type: _types_1.PAGE_SET,
27-
};
2822
}
2923
exports.pageNext = pageNext;
30-
function pageSet(position) {
31-
if (position === void 0) { position = _position; }
32-
if (position.completed) {
24+
function pageSet(pagePosition) {
25+
if (pagePosition === void 0) { pagePosition = 0; }
26+
if (store_1.default.getState().progress.pages[pagePosition]) {
3327
return {
3428
payload: { route: 'final' },
3529
type: _types_1.ROUTE_SET,
3630
};
3731
}
3832
return {
39-
payload: { position: position },
33+
payload: { pagePosition: pagePosition },
4034
type: _types_1.PAGE_SET,
4135
};
4236
}
4337
exports.pageSet = pageSet;
38+
function pagePositionLoad() {
39+
return { type: _types_1.PAGE_POSITION_LOAD };
40+
}
41+
exports.pagePositionLoad = pagePositionLoad;
42+
function pagePositionSet(pagePosition) {
43+
return {
44+
payload: { pagePosition: pagePosition },
45+
type: _types_1.PAGE_POSITION_SET,
46+
};
47+
}
48+
exports.pagePositionSet = pagePositionSet;

lib/actions/position.js

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

lib/actions/progress.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
"use strict";
22
var _types_1 = require('./_types');
3-
var position_1 = require('./position');
3+
var page_1 = require('./page');
44
var store_1 = require('../store');
55
function progressLoad() {
66
setTimeout(function () {
7-
store_1.default.dispatch(position_1.positionLoad());
7+
store_1.default.dispatch(page_1.pagePositionLoad());
88
});
99
return { type: _types_1.PROGRESS_LOAD };
1010
}
@@ -13,13 +13,13 @@ function isTrue(x) {
1313
return x === true;
1414
}
1515
function completePage() {
16-
var position = store_1.default.getState().position;
16+
var pagePosition = store_1.default.getState().pagePosition;
1717
var progress = store_1.default.getState().progress;
1818
if (progress.pages.every(function (x) { return x.completed; })) {
1919
store_1.default.dispatch(completeTutorial());
2020
}
2121
return {
22-
payload: { position: position },
22+
payload: { pagePosition: pagePosition },
2323
type: _types_1.COMPLETE_PAGE,
2424
};
2525
}

lib/actions/test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ function testComplete() {
1717
return { type: _types_1.TEST_COMPLETE };
1818
}
1919
exports.testComplete = testComplete;
20-
function testsLoad() {
21-
return { type: _types_1.TESTS_LOAD };
20+
function testsLoad(pagePosition) {
21+
return { type: _types_1.TESTS_LOAD, payload: { pagePosition: pagePosition } };
2222
}
2323
exports.testsLoad = testsLoad;

lib/components/Progress/ProgressPage/index.js

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,30 +28,21 @@ var ProgressPage = (function (_super) {
2828
function ProgressPage() {
2929
_super.apply(this, arguments);
3030
}
31-
ProgressPage.prototype.canActivate = function (isActive) {
32-
var _a = this.props, index = _a.index, position = _a.position, progress = _a.progress;
33-
var completed = progress.pages[index];
34-
return isActive || completed;
35-
};
3631
ProgressPage.prototype.render = function () {
37-
console.log(this.props);
38-
var _a = this.props, page = _a.page, position = _a.position, index = _a.index, progress = _a.progress, selectPage = _a.selectPage;
39-
var isActive = index === position.page;
40-
var canActivate = this.canActivate(isActive);
41-
var completed = progress.pages[index];
42-
return (React.createElement(List_1.ListItem, {key: index, style: Object.assign({}, styles, !canActivate ? { color: colors_1.grey400 } : {}), primaryText: (index + 1) + ". " + page.title, secondaryText: canActivate ? page.description : '', leftIcon: progressIcon_1.progressIcon(completed, isActive), onClick: canActivate
43-
? selectPage.bind(this, {
44-
page: index
45-
})
32+
var _a = this.props, page = _a.page, pagePosition = _a.pagePosition, index = _a.index, progress = _a.progress, selectPage = _a.selectPage;
33+
var isCompleted = progress.pages[index] || false;
34+
var canActivate = index >= pagePosition;
35+
return (React.createElement(List_1.ListItem, {key: index, style: Object.assign({}, styles, !canActivate ? { color: colors_1.grey400 } : {}), primaryText: (index + 1) + ". " + page.title, secondaryText: page.description, leftIcon: progressIcon_1.progressIcon(isCompleted, index === pagePosition), onClick: canActivate
36+
? selectPage.bind(this, index)
4637
: function () { return; }}));
4738
};
4839
;
4940
ProgressPage = __decorate([
5041
react_redux_1.connect(null, function (dispatch) {
5142
return {
52-
selectPage: function (position) {
53-
dispatch(actions_1.pageSet(position));
54-
dispatch(actions_1.testsLoad());
43+
selectPage: function (pagePosition) {
44+
dispatch(actions_1.pageSet(pagePosition));
45+
dispatch(actions_1.testsLoad(pagePosition));
5546
dispatch(actions_1.routeSet('page'));
5647
}
5748
};

lib/components/Progress/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ var pageStyle = {
99
margin: '0px',
1010
};
1111
exports.Progress = function (_a) {
12-
var progress = _a.progress, position = _a.position, info = _a.info, tutorial = _a.tutorial;
13-
return (React.createElement(Paper_1.default, {style: pageStyle}, React.createElement(List_1.List, null, React.createElement(Subheader_1.default, null, info.name), tutorial.pages.map(function (page, index) { return (React.createElement(ProgressPage_1.ProgressPage, {key: index, index: index, page: page, position: position, progress: progress})); }))));
12+
var progress = _a.progress, pagePosition = _a.pagePosition, info = _a.info, tutorial = _a.tutorial;
13+
return (React.createElement(Paper_1.default, {style: pageStyle}, React.createElement(List_1.List, null, React.createElement(Subheader_1.default, null, info.name), tutorial.pages.map(function (page, index) { return (React.createElement(ProgressPage_1.ProgressPage, {key: index, index: index, page: page, pagePosition: pagePosition, progress: progress})); }))));
1414
};

lib/components/Tutorials/SelectTutorial/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ var SelectTutorial = (function (_super) {
4141
return {
4242
selectTutorial: function (name) {
4343
dispatch(actions_1.tutorialSet(name));
44-
dispatch(actions_1.positionSet({ page: 0 }));
44+
dispatch(actions_1.pagePositionSet(0));
4545
dispatch(actions_1.progressLoad());
4646
dispatch(actions_1.routeSet('progress'));
4747
},

lib/reducers/alert/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function alertReducer(alert, action) {
5353
});
5454
case _types_1.COMPLETE_PAGE:
5555
return setAlert({
56-
message: "Page " + (action.payload.position.page + 1) + " Complete",
56+
message: "Page " + (action.payload.pagePosition.page + 1) + " Complete",
5757
});
5858
case _types_1.COMPLETE_TUTORIAL:
5959
return setAlert({

lib/reducers/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var editor_actions_1 = require('./editor-actions');
77
var hint_position_1 = require('./hint-position');
88
var package_json_1 = require('./package-json');
99
var page_1 = require('./page');
10-
var position_1 = require('./position');
10+
var page_position_1 = require('./page-position');
1111
var progress_1 = require('./progress');
1212
var route_1 = require('./route');
1313
var task_position_1 = require('./task-position');
@@ -19,6 +19,6 @@ var tutorials_1 = require('./tutorials');
1919
Object.defineProperty(exports, "__esModule", { value: true });
2020
exports.default = redux_1.combineReducers({
2121
alert: alert_1.default, checks: checks_1.default, dir: dir_1.default, editorActions: editor_actions_1.default, hintPosition: hint_position_1.default, page: page_1.default,
22-
packageJson: package_json_1.default, position: position_1.default, progress: progress_1.default, route: route_1.default, taskPosition: task_position_1.default,
22+
packageJson: package_json_1.default, pagePosition: page_position_1.default, progress: progress_1.default, route: route_1.default, taskPosition: task_position_1.default,
2323
taskTests: task_tests_1.default, tasks: tasks_1.default, testRun: test_run_1.default, tutorial: tutorial_1.default, tutorials: tutorials_1.default,
2424
});

lib/reducers/page-position/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"use strict";
2+
var _types_1 = require('../../actions/_types');
3+
var store_1 = require('../../store');
4+
function pagePositionReducer(pagePosition, action) {
5+
if (pagePosition === void 0) { pagePosition = 0; }
6+
switch (action.type) {
7+
case _types_1.PAGE_POSITION_LOAD:
8+
var pages = store_1.default.getState().progress.pages;
9+
pagePosition = pages.indexOf(function (x) { return x; }) + 1;
10+
console.log('expected pagePosition', pagePosition, pages);
11+
if (pagePosition >= pages.length) {
12+
pagePosition = pages.length - 1;
13+
}
14+
return pagePosition;
15+
case _types_1.PAGE_SET:
16+
case _types_1.PAGE_POSITION_SET:
17+
return action.payload.pagePosition;
18+
default:
19+
return pagePosition;
20+
}
21+
}
22+
Object.defineProperty(exports, "__esModule", { value: true });
23+
exports.default = pagePositionReducer;

lib/reducers/page/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ function pageReducer(p, action) {
1111
if (p === void 0) { p = _page; }
1212
switch (action.type) {
1313
case _types_1.PAGE_SET:
14-
var page = action.payload.position.page;
15-
var _a = store_1.default.getState().tutorial.pages[page], title = _a.title, description = _a.description, onPageComplete = _a.onPageComplete, completed = _a.completed;
14+
var pagePosition = action.payload.pagePosition;
15+
var _a = store_1.default.getState().tutorial.pages[pagePosition], title = _a.title, description = _a.description, onPageComplete = _a.onPageComplete, completed = _a.completed;
1616
editor_1.clearConsole();
1717
return {
1818
title: title,

lib/reducers/position/index.js

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

lib/reducers/progress/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ function progressReducer(progress, action) {
1919
pages: store_1.default.getState().tutorial.pages.map(function () { return false; })
2020
};
2121
case _types_1.COMPLETE_PAGE:
22-
var page = action.payload.position.page;
23-
progress.pages[page] = true;
22+
var pagePosition = action.payload.pagePosition;
23+
progress.pages[pagePosition] = true;
2424
local_storage_1.saveToLocalStorage(progress);
2525
return progress;
2626
case _types_1.COMPLETE_TUTORIAL:

lib/reducers/tasks/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ function tasksReducer(tasks, action) {
1313
if (tasks === void 0) { tasks = _tasks; }
1414
switch (action.type) {
1515
case _types_1.PAGE_SET:
16-
var page = action.payload.position.page;
17-
return config_task_tests_1.configTaskTests(store_1.default.getState().tutorial.pages[page].tasks || []);
16+
var pagePosition = action.payload.pagePosition;
17+
return config_task_tests_1.configTaskTests(store_1.default.getState().tutorial.pages[pagePosition].tasks || []);
1818
default:
1919
return tasks;
2020
}

src/actions/_types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ export const HINT_POSITION_SET = 'HINT_POSITION_SET';
66
export const HINT_SHOW = 'HINT_SHOW';
77
export const PACKAGE_SET = 'PACKAGE_SET';
88
export const PAGE_SET = 'PAGE_SET';
9-
export const POSITION_LOAD = 'POSITION_LOAD';
10-
export const POSITION_SET = 'POSITION_SET';
9+
export const PAGE_POSITION_LOAD = 'POSITION_LOAD';
10+
export const PAGE_POSITION_SET = 'POSITION_SET';
1111
export const PROGRESS_LOAD = 'PROGRESS_LOAD';
1212
export const ROUTE_SET = 'ROUTE_SET';
1313
export const SETUP_VERIFY = 'SETUP_VERIFY';

src/actions/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ export {
33
progressLoad, completePage, completeTutorial
44
} from './progress';
55
export {hintShow, hintPositionSet} from './hint';
6-
export {pageSet, pageNext} from './page';
7-
export {positionLoad, positionSet} from './position';
6+
export {pageSet, pageNext, pagePositionLoad, pagePositionSet} from './page';
87
export {routeSet} from './route';
98
export {setupVerify} from './setup';
109
export {

src/actions/page.ts

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,47 @@
11
import {testsLoad} from './test';
2-
import {ROUTE_SET, PAGE_SET} from './_types';
2+
import {
3+
ROUTE_SET, PAGE_SET, PAGE_POSITION_SET, PAGE_POSITION_LOAD
4+
} from './_types';
35
import store from '../store';
46

5-
const _position = {
6-
page: 0,
7-
};
8-
97
export function pageNext(): Action {
10-
let position = null;
11-
const {page} = store.getState().position;
8+
let pagePosition = store.getState().pagePosition;
129
const {pages} = store.getState().tutorial;
13-
if (page < pages.length - 1) {
14-
store.dispatch(testsLoad());
15-
position = {
16-
page: page + 1,
17-
};
18-
} else {
10+
if (pagePosition >= pages.length - 1) {
1911
return {
2012
payload: { route: 'final' },
2113
type: ROUTE_SET,
2214
};
15+
} else {
16+
pagePosition = pagePosition + 1;
17+
store.dispatch(testsLoad(pagePosition));
18+
return {
19+
payload: { pagePosition },
20+
type: PAGE_SET,
21+
};
2322
}
24-
return {
25-
payload: { position },
26-
type: PAGE_SET,
27-
};
2823
}
2924

30-
export function pageSet(
31-
position: CR.Position = _position
32-
): Action {
33-
if (position.completed) {
25+
export function pageSet(pagePosition = 0): Action {
26+
if (store.getState().progress.pages[pagePosition]) {
3427
return {
3528
payload: { route: 'final' },
3629
type: ROUTE_SET,
3730
};
3831
}
3932
return {
40-
payload: { position },
33+
payload: { pagePosition },
4134
type: PAGE_SET,
4235
};
4336
}
37+
38+
export function pagePositionLoad() {
39+
return { type: PAGE_POSITION_LOAD };
40+
}
41+
42+
export function pagePositionSet(pagePosition: CR.PagePosition): Action {
43+
return {
44+
payload: { pagePosition },
45+
type: PAGE_POSITION_SET,
46+
};
47+
}

0 commit comments

Comments
 (0)