Skip to content

Commit bf4079e

Browse files
committed
refactor out all UI events into reducers
1 parent 163c3ff commit bf4079e

File tree

26 files changed

+226
-47
lines changed

26 files changed

+226
-47
lines changed

lib/actions/_types.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ exports.ALERT_REPLAY = 'ALERT_REPLAY';
33
exports.ALERT_TOGGLE = 'ALERT_TOGGLE';
44
exports.COMPLETE_PAGE = 'COMPLETE_PAGE';
55
exports.COMPLETE_TUTORIAL = 'COMPLETE_TUTORIAL';
6+
exports.DEVTOOLS_TOGGLE = 'DEVTOOLS_TOGGLE';
67
exports.HINT_POSITION_SET = 'HINT_POSITION_SET';
78
exports.HINT_SHOW = 'HINT_SHOW';
89
exports.PACKAGE_SET = 'PACKAGE_SET';
910
exports.PAGE_SET = 'PAGE_SET';
1011
exports.PAGE_POSITION_LOAD = 'POSITION_LOAD';
1112
exports.PAGE_POSITION_SET = 'POSITION_SET';
1213
exports.PROGRESS_LOAD = 'PROGRESS_LOAD';
14+
exports.QUIT = 'QUIT';
1315
exports.ROUTE_SET = 'ROUTE_SET';
16+
exports.TEST_SAVE = 'TEST_SAVE';
1417
exports.SETUP_VERIFY = 'SETUP_VERIFY';
1518
exports.TEST_COMPLETE = 'TEST_COMPLETE';
1619
exports.TEST_RESULT = 'TEST_RESULT';

lib/actions/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,13 @@ var test_1 = require('./test');
2222
exports.testRun = test_1.testRun;
2323
exports.testComplete = test_1.testComplete;
2424
exports.testResult = test_1.testResult;
25+
exports.testSave = test_1.testSave;
2526
exports.testsLoad = test_1.testsLoad;
2627
var tutorial_1 = require('./tutorial');
2728
exports.tutorialsFind = tutorial_1.tutorialsFind;
2829
exports.tutorialSet = tutorial_1.tutorialSet;
2930
exports.tutorialUpdate = tutorial_1.tutorialUpdate;
30-
var window_1 = require('./window');
31-
exports.windowToggle = window_1.windowToggle;
31+
var toggle_1 = require('./toggle');
32+
exports.windowToggle = toggle_1.windowToggle;
33+
exports.devToolsToggle = toggle_1.devToolsToggle;
34+
exports.quit = toggle_1.quit;

lib/actions/test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ function testComplete() {
1717
return { type: _types_1.TEST_COMPLETE };
1818
}
1919
exports.testComplete = testComplete;
20+
function testSave() {
21+
return { type: _types_1.TEST_SAVE };
22+
}
23+
exports.testSave = testSave;
2024
function testsLoad(pagePosition) {
2125
return { type: _types_1.TESTS_LOAD, payload: { pagePosition: pagePosition } };
2226
}

lib/actions/toggle.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use strict";
2+
var _types_1 = require('./_types');
3+
function windowToggle() {
4+
return { type: _types_1.WINDOW_TOGGLE };
5+
}
6+
exports.windowToggle = windowToggle;
7+
function devToolsToggle() {
8+
return { type: _types_1.DEVTOOLS_TOGGLE };
9+
}
10+
exports.devToolsToggle = devToolsToggle;
11+
function quit() {
12+
return { type: _types_1.QUIT };
13+
}
14+
exports.quit = quit;

lib/components/AppMenu/Quit/index.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
1818
var actions_1 = require('../../../actions');
19-
var subscriptions_1 = require('../../../atom/subscriptions');
2019
var MenuItem_1 = require('material-ui/MenuItem');
2120
var styles = {
2221
textAlign: 'center',
@@ -34,8 +33,7 @@ var Quit = (function (_super) {
3433
react_redux_1.connect(null, function (dispatch) {
3534
return {
3635
quit: function () {
37-
dispatch(actions_1.windowToggle());
38-
subscriptions_1.onDeactivate();
36+
dispatch(actions_1.quit());
3937
}
4038
};
4139
}),
Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,41 @@
11
"use strict";
2+
var __extends = (this && this.__extends) || function (d, b) {
3+
for (var p in b) 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+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10+
else for (var i = 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+
return c > 3 && r && Object.defineProperty(target, key, r), r;
12+
};
13+
var __metadata = (this && this.__metadata) || function (k, v) {
14+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15+
};
216
var React = require('react');
17+
var react_redux_1 = require('react-redux');
318
var FlatButton_1 = require('material-ui/FlatButton');
4-
var editor_1 = require('../../../../atom/editor');
5-
var Save = function () { return (React.createElement(FlatButton_1.default, {label: 'Save', secondary: true, onTouchTap: editor_1.save})); };
19+
var actions_1 = require('../../../../actions');
20+
var Save = (function (_super) {
21+
__extends(Save, _super);
22+
function Save() {
23+
_super.apply(this, arguments);
24+
}
25+
Save.prototype.render = function () {
26+
return (React.createElement(FlatButton_1.default, {label: 'Save', secondary: true, onTouchTap: this.props.save}));
27+
};
28+
Save = __decorate([
29+
react_redux_1.connect(null, function (dispatch, state) {
30+
return {
31+
save: function () {
32+
dispatch(actions_1.testSave());
33+
}
34+
};
35+
}),
36+
__metadata('design:paramtypes', [])
37+
], Save);
38+
return Save;
39+
}(React.Component));
640
Object.defineProperty(exports, "__esModule", { value: true });
741
exports.default = Save;
Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,43 @@
11
"use strict";
2+
var __extends = (this && this.__extends) || function (d, b) {
3+
for (var p in b) 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+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
9+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
10+
else for (var i = 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+
return c > 3 && r && Object.defineProperty(target, key, r), r;
12+
};
13+
var __metadata = (this && this.__metadata) || function (k, v) {
14+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
15+
};
216
var React = require('react');
317
var code_1 = require('material-ui/svg-icons/action/code');
4-
var editor_1 = require('../../../../atom/editor');
18+
var react_redux_1 = require('react-redux');
19+
var actions_1 = require('../../../../actions');
520
var FlatButton_1 = require('material-ui/FlatButton');
6-
var ToggleLog = function () { return (React.createElement(FlatButton_1.default, {icon: React.createElement(code_1.default, null), onTouchTap: editor_1.toggleDevTools})); };
21+
var ToggleLog = (function (_super) {
22+
__extends(ToggleLog, _super);
23+
function ToggleLog() {
24+
_super.apply(this, arguments);
25+
}
26+
ToggleLog.prototype.render = function () {
27+
return (React.createElement(FlatButton_1.default, {icon: React.createElement(code_1.default, null), onTouchTap: this.props.toggleDevTools}));
28+
};
29+
;
30+
ToggleLog = __decorate([
31+
react_redux_1.connect(null, function (dispatch, state) {
32+
return {
33+
toggleDevTools: function () {
34+
dispatch(actions_1.devToolsToggle());
35+
}
36+
};
37+
}),
38+
__metadata('design:paramtypes', [])
39+
], ToggleLog);
40+
return ToggleLog;
41+
}(React.Component));
742
Object.defineProperty(exports, "__esModule", { value: true });
843
exports.default = ToggleLog;

lib/reducers/devTools-toggle/index.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"use strict";
2+
var _types_1 = require('../../actions/_types');
3+
var editor_1 = require('../../atom/editor');
4+
function devToolsToggleReducer(open, action) {
5+
if (open === void 0) { open = false; }
6+
switch (action.type) {
7+
case _types_1.DEVTOOLS_TOGGLE:
8+
editor_1.toggleDevTools();
9+
return !open;
10+
default:
11+
return open;
12+
}
13+
}
14+
Object.defineProperty(exports, "__esModule", { value: true });
15+
exports.default = devToolsToggleReducer;

lib/reducers/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
var redux_1 = require('redux');
33
var alert_1 = require('./alert');
44
var checks_1 = require('./checks');
5+
var devTools_toggle_1 = require('./devTools-toggle');
56
var dir_1 = require('./dir');
67
var task_actions_1 = require('./task-actions');
78
var hint_position_1 = require('./hint-position');
@@ -19,7 +20,7 @@ var tutorial_list_1 = require('./tutorial-list');
1920
var window_toggle_1 = require('./window-toggle');
2021
Object.defineProperty(exports, "__esModule", { value: true });
2122
exports.default = redux_1.combineReducers({
22-
alert: alert_1.default, checks: checks_1.default, dir: dir_1.default, taskActions: task_actions_1.default, hintPosition: hint_position_1.default, page: page_1.default,
23+
alert: alert_1.default, checks: checks_1.default, dir: dir_1.default, devToolsToggle: devTools_toggle_1.default, taskActions: task_actions_1.default, hintPosition: hint_position_1.default, page: page_1.default,
2324
packageJson: package_json_1.default, pagePosition: page_position_1.default, progress: progress_1.default, route: route_1.default, taskPosition: task_position_1.default,
2425
taskTests: task_tests_1.default, tasks: tasks_1.default, testRun: test_run_1.default, tutorial: tutorial_1.default, tutorialList: tutorial_list_1.default, windowToggle: window_toggle_1.default
2526
});

lib/reducers/test-run/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"use strict";
22
var _types_1 = require('../../actions/_types');
33
var run_1 = require('./run');
4+
var editor_1 = require('../../atom/editor');
45
var pageTimeout = 800;
56
var previous = new Date().getTime();
67
function runTestReducer(testRun, action) {
@@ -18,6 +19,8 @@ function runTestReducer(testRun, action) {
1819
case _types_1.PAGE_SET:
1920
previous = new Date().getTime();
2021
return false;
22+
case _types_1.TEST_SAVE:
23+
editor_1.save();
2124
default:
2225
return testRun;
2326
}

0 commit comments

Comments
 (0)