Skip to content

Commit 8e96307

Browse files
committed
create editor actions reducer
1 parent 59d4389 commit 8e96307

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+154
-88
lines changed

lib/actions.js

+4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ exports.alertClose = actions_1.alertClose;
55
exports.alertReplay = actions_1.alertReplay;
66
var actions_2 = require('./modules/editor/actions');
77
exports.editorDevToolsToggle = actions_2.editorDevToolsToggle;
8+
exports.editorOpen = actions_2.editorOpen;
9+
exports.editorInsert = actions_2.editorInsert;
10+
exports.editorSave = actions_2.editorSave;
11+
exports.editorSet = actions_2.editorSet;
812
var actions_3 = require('./modules/hints/actions');
913
exports.hintPositionSet = actions_3.hintPositionSet;
1014
var actions_4 = require('./modules/page/actions');

lib/components/Page/PageToolbar/index.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
var React = require('react');
33
var Toolbar_1 = require('material-ui/Toolbar');
44
var index_1 = require('../../index');
5-
var Continue_1 = require('./Continue');
65
var styles = {
76
zIndex: '5',
87
position: 'relative',
@@ -15,7 +14,7 @@ var styles = {
1514
exports.PageToolbar = function (_a) {
1615
var tasks = _a.tasks, taskPosition = _a.taskPosition, children = _a.children;
1716
return (React.createElement("section", {styles: styles}, children, React.createElement(Toolbar_1.Toolbar, null, React.createElement(Toolbar_1.ToolbarGroup, {float: 'left'}, React.createElement(index_1.ToggleDevTools, null)), React.createElement(Toolbar_1.ToolbarGroup, {float: 'right'}, taskPosition >= tasks.length ?
18-
React.createElement(Continue_1.default, null) : React.createElement(index_1.Save, null)))));
17+
React.createElement(index_1.Continue, null) : React.createElement(index_1.Save, null)))));
1918
};
2019
Object.defineProperty(exports, "__esModule", { value: true });
2120
exports.default = exports.PageToolbar;

lib/components/index.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ var tutorials_1 = require('../modules/tutorials');
2525
exports.Tutorials = tutorials_1.Tutorials;
2626
var editor_1 = require('../modules/editor');
2727
exports.ToggleDevTools = editor_1.ToggleDevTools;
28-
var editor_2 = require('../modules/editor');
29-
exports.Save = editor_2.Save;
28+
exports.Save = editor_1.Save;
29+
var page_1 = require('../modules/page');
30+
exports.Continue = page_1.Continue;

lib/modules/editor/actions.js

+12
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,19 @@ function editorDevToolsToggle() {
44
return { type: types_1.EDITOR_DEVTOOLS_TOGGLE };
55
}
66
exports.editorDevToolsToggle = editorDevToolsToggle;
7+
function editorInsert(content) {
8+
return { type: types_1.EDITOR_INSERT, payload: { content: content } };
9+
}
10+
exports.editorInsert = editorInsert;
11+
function editorOpen(file, options) {
12+
return { type: types_1.EDITOR_OPEN, payload: { file: file, options: options } };
13+
}
14+
exports.editorOpen = editorOpen;
715
function editorSave() {
816
return { type: types_1.EDITOR_SAVE };
917
}
1018
exports.editorSave = editorSave;
19+
function editorSet(content) {
20+
return { type: types_1.EDITOR_SET, payload: { content: content } };
21+
}
22+
exports.editorSet = editorSet;

lib/modules/editor/actions/file.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
var fs_1 = require('fs');
33
var node_file_exists_1 = require('node-file-exists');
44
var editor_1 = require('./editor');
5-
var openTimeout = 200;
65
function openFolder() {
76
atom.open();
87
}
@@ -11,13 +10,14 @@ function save() {
1110
editor_1.getEditor().then(function (editor) { return editor.save(); });
1211
}
1312
exports.save = save;
14-
function open(filePath, options) {
13+
function open(file, options) {
1514
if (options === void 0) { options = {}; }
1615
return new Promise(function (resolve, reject) {
17-
if (node_file_exists_1.default(filePath)) {
18-
fs_1.unlink(filePath);
16+
if (node_file_exists_1.default(file)) {
17+
fs_1.unlink(file);
1918
}
20-
atom.workspace.open(filePath, options);
19+
var openTimeout = 200;
20+
atom.workspace.open(file, options);
2121
setTimeout(function () { return resolve(); }, openTimeout);
2222
});
2323
}

lib/modules/editor/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
var reducer_1 = require('./reducer');
3-
exports.reducer = reducer_1.default;
3+
exports.editor = reducer_1.default;
44
var dir_1 = require('./dir');
55
exports.dir = dir_1.default;
66
var ToggleDevTools_1 = require('./ToggleDevTools');

lib/modules/editor/reducer.js

+10
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,16 @@ function editor(editor, action) {
1010
case types_1.EDITOR_SAVE:
1111
index_1.save();
1212
return editor;
13+
case types_1.EDITOR_OPEN:
14+
var _a = action.payload, file = _a.file, options = _a.options;
15+
index_1.open(file, options);
16+
return editor;
17+
case types_1.EDITOR_INSERT:
18+
index_1.insert(action.payload.content);
19+
return editor;
20+
case types_1.EDITOR_SET:
21+
index_1.set(action.payload.content);
22+
return editor;
1323
default:
1424
return editor;
1525
}

lib/modules/editor/types.js

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
"use strict";
22
exports.EDITOR_DEVTOOLS_TOGGLE = 'EDITOR_DEVTOOLS_TOGGLE';
3+
exports.EDITOR_INSERT = 'EDITOR_INSERT';
4+
exports.EDITOR_OPEN = 'EDITOR_OPEN';
35
exports.EDITOR_SAVE = 'EDITOR_SAVE';
6+
exports.EDITOR_SET = 'EDITOR_SET';

lib/components/Page/PageToolbar/Continue/index.js renamed to lib/modules/page/Continue/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
1818
var RaisedButton_1 = require('material-ui/RaisedButton');
19-
var actions_1 = require('../../../../actions');
19+
var actions_1 = require('../actions');
2020
var styles = {
2121
zIndex: '10000',
2222
border: '0px',

lib/modules/page/actions.js

+5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
"use strict";
22
var types_1 = require('./types');
33
var actions_1 = require('../../actions');
4+
var actions_2 = require('../../actions');
5+
exports.editorOpen = actions_2.editorOpen;
6+
exports.editorSave = actions_2.editorSave;
7+
exports.editorSet = actions_2.editorSet;
8+
exports.editorInsert = actions_2.editorInsert;
49
function pageNext() {
510
return function (dispatch, getState) {
611
var pagePosition = getState().pagePosition;

lib/modules/page/index.js

+2
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ var task_tests_1 = require('./task-tests');
99
exports.taskTests = task_tests_1.default;
1010
var tasks_1 = require('./tasks');
1111
exports.tasks = tasks_1.default;
12+
var Continue_1 = require('./Continue');
13+
exports.Continue = Continue_1.default;
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
"use strict";
2-
var index_1 = require('./index');
2+
var store_1 = require('../../../store');
33
var parser_1 = require('./parser');
4+
var actions_1 = require('../actions');
45
var Type = {
56
OPEN: 'open',
67
SET: 'set',
78
INSERT: 'insert',
89
OPEN_CONSOLE: 'openConsole',
910
};
10-
function editorActionReducer(actionString) {
11+
function handleActionString(actionString) {
1112
return new Promise(function (resolve, reject) {
1213
var command = parser_1.getCommand(actionString);
1314
var params = parser_1.getParams(actionString);
@@ -17,17 +18,15 @@ function editorActionReducer(actionString) {
1718
var file = obj.param;
1819
var options = obj.options;
1920
if (params.length === 1) {
20-
index_1.open(file, options);
21-
setTimeout(function () {
22-
resolve();
23-
}, 100);
21+
store_1.default.dispatch(actions_1.editorOpen(file, options));
22+
setTimeout(function () { return resolve(); }, 100);
2423
}
2524
break;
2625
case Type.SET:
2726
if (params.length === 1) {
2827
var content_1 = params[0];
2928
setTimeout(function () {
30-
index_1.set(content_1);
29+
store_1.default.dispatch(actions_1.editorSet(content_1));
3130
resolve(true);
3231
});
3332
}
@@ -36,15 +35,7 @@ function editorActionReducer(actionString) {
3635
if (params.length === 1) {
3736
var content_2 = params[0];
3837
setTimeout(function () {
39-
index_1.insert(content_2, {});
40-
resolve(true);
41-
});
42-
}
43-
break;
44-
case Type.OPEN_CONSOLE:
45-
if (params.length === 0) {
46-
setTimeout(function () {
47-
index_1.openDevTools();
38+
store_1.default.dispatch(actions_1.editorInsert(content_2));
4839
resolve(true);
4940
});
5041
}
@@ -58,4 +49,4 @@ function editorActionReducer(actionString) {
5849
});
5950
}
6051
Object.defineProperty(exports, "__esModule", { value: true });
61-
exports.default = editorActionReducer;
52+
exports.default = handleActionString;

lib/modules/page/task-actions/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
"use strict";
22
var types_1 = require('../types');
3-
var editor_1 = require('../../editor/editor');
3+
var handle_action_string_1 = require('./handle-action-string');
44
function handleTaskActions(actions) {
55
var next = actions.shift();
66
if (next && next.length) {
77
next.reduce(function (total, curr) {
8-
return total.then(function () { return editor_1.default(curr); });
8+
return total.then(function () { return handle_action_string_1.default(curr); });
99
}, Promise.resolve());
1010
}
1111
}

lib/modules/editor/parser/index.js renamed to lib/modules/page/task-actions/parser.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"use strict";
2-
var params_1 = require('./params');
2+
var parse_params_1 = require('./parse-params');
33
function getCommand(actionString) {
44
var command = actionString.substring(0, actionString.indexOf('('));
55
if (!command.length) {
@@ -11,7 +11,7 @@ function getCommand(actionString) {
1111
}
1212
exports.getCommand = getCommand;
1313
function getParams(actionString) {
14-
var parser = new params_1.default();
14+
var parser = new parse_params_1.default();
1515
var command = getCommand(actionString);
1616
var params = actionString.substring(command.length + 1, actionString.length - 1);
1717
if (!params.length) {

lib/modules/tests/test-run/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"use strict";
22
var types_1 = require('../types');
3-
var run_1 = require('../utils/run');
3+
var run_1 = require('./run');
44
var pageTimeout = 800;
55
var previous = new Date().getTime();
66
function runTest(testRun, action) {
File renamed without changes.

lib/reducers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ var window_1 = require('./modules/window');
1313
var editor_1 = require('./modules/editor');
1414
Object.defineProperty(exports, "__esModule", { value: true });
1515
exports.default = redux_1.combineReducers({
16-
alert: alert_1.reducer, checks: setup_1.reducer, editor: editor_1.reducer, dir: editor_1.dir, hintPosition: hints_1.reducer,
16+
alert: alert_1.reducer, checks: setup_1.reducer, editor: editor_1.editor, dir: editor_1.dir, hintPosition: hints_1.reducer,
1717
packageJson: setup_1.packageJson, page: page_1.page, pagePosition: page_1.pagePosition, progress: progress_1.reducer, route: route_1.reducer, tasks: page_1.tasks,
1818
tutorial: tutorial_1.reducer, tutorials: tutorials_1.reducer,
1919
taskActions: page_1.taskActions, taskPosition: tests_1.taskPosition, taskTests: page_1.taskTests, testRun: tests_1.testRun, windowToggle: window_1.reducer

src/actions.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
export {alertOpen, alertClose, alertReplay} from './modules/alert/actions';
2-
export {editorDevToolsToggle} from './modules/editor/actions';
2+
export {editorDevToolsToggle, editorOpen, editorInsert,
3+
editorSave, editorSet} from './modules/editor/actions';
34
export {hintPositionSet} from './modules/hints/actions';
45
export {pageSet, pageNext} from './modules/page/actions';
56
export {
6-
progressLoad, progressCompletePage
7+
progressLoad, progressCompletePage
78
} from './modules/progress/actions';
89
export {routeSet} from './modules/route/actions'
910
export {setupVerify, setupPackage} from './modules/setup/actions';
10-
export {testRun, testResult, testSave, testComplete} from './modules/tests/actions';
11+
export {testRun, testResult, testComplete} from './modules/tests/actions';
1112
export {tutorialSet} from './modules/tutorial/actions';
1213
export {tutorialsFind, tutorialUpdate} from './modules/tutorials/actions';

src/components/Page/PageToolbar/index.tsx

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import * as React from 'react';
22
import {Toolbar, ToolbarGroup} from 'material-ui/Toolbar';
3-
import {ToggleDevTools, Save} from '../../index';
4-
import Continue from './Continue';
3+
import {ToggleDevTools, Save, Continue} from '../../index';
54

65
const styles = {
76
zIndex: '5',

src/components/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@ export {Alert} from '../modules/alert';
1111
export {RouteButton} from '../modules/route';
1212
export {Checks} from '../modules/setup';
1313
export {Tutorials} from '../modules/tutorials';
14-
export {ToggleDevTools} from '../modules/editor';
15-
export {Save} from '../modules/editor';
14+
export {ToggleDevTools, Save} from '../modules/editor';
15+
export {Continue} from '../modules/page';

src/modules/editor/actions.ts

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
1-
import {EDITOR_DEVTOOLS_TOGGLE, EDITOR_SAVE} from './types';
1+
import {
2+
EDITOR_DEVTOOLS_TOGGLE, EDITOR_INSERT, EDITOR_OPEN,
3+
EDITOR_SAVE, EDITOR_SET
4+
} from './types';
25

36
export function editorDevToolsToggle(): Action {
47
return { type: EDITOR_DEVTOOLS_TOGGLE };
58
}
69

10+
export function editorInsert(content: string): Action {
11+
return { type: EDITOR_INSERT, payload: { content } };
12+
}
13+
14+
export function editorOpen(file: string, options: Object): Action {
15+
return { type: EDITOR_OPEN, payload: { file, options } };
16+
}
17+
718
export function editorSave(): Action {
819
return { type: EDITOR_SAVE };
920
}
21+
22+
export function editorSet(content: string): Action {
23+
return { type: EDITOR_SET, payload: { content } };
24+
}

src/modules/editor/actions/file.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ import {unlink} from 'fs';
22
import fileExists from 'node-file-exists';
33
import {getEditor} from './editor';
44

5-
// delay necessary since opening a file is slow
6-
const openTimeout = 200;
7-
85
export function openFolder(): void {
96
atom.open();
107
}
@@ -13,14 +10,15 @@ export function save() {
1310
getEditor().then(editor => editor.save());
1411
}
1512

16-
export function open(filePath: string, options = {}): Promise<any> {
13+
export function open(file: string, options = {}): Promise<any> {
1714
return new Promise((resolve, reject) => {
1815
// delete file first, to avoid bug
19-
if (fileExists(filePath)) {
20-
unlink(filePath);
16+
if (fileExists(file)) {
17+
unlink(file);
2118
}
22-
23-
atom.workspace.open(filePath, options);
19+
// delay necessary since opening a file is slow
20+
const openTimeout = 200;
21+
atom.workspace.open(file, options);
2422
setTimeout(() => resolve(), openTimeout);
2523
});
2624
}

src/modules/editor/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export {default as reducer} from './reducer';
1+
export {default as editor} from './reducer';
22
export {default as dir} from './dir';
33

44
export {default as ToggleDevTools} from './ToggleDevTools';

src/modules/editor/reducer.ts

+18-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
import {EDITOR_DEVTOOLS_TOGGLE, EDITOR_SAVE} from './types';
2-
import {toggleDevTools, save} from './index';
1+
import {
2+
EDITOR_DEVTOOLS_TOGGLE, EDITOR_SAVE, EDITOR_OPEN,
3+
EDITOR_SET, EDITOR_INSERT
4+
} from './types';
5+
import {toggleDevTools, save, set, insert, open} from './index';
36

47
export default function editor(
58
editor = 'atom', action: Action
@@ -14,6 +17,19 @@ export default function editor(
1417
save();
1518
return editor;
1619

20+
case EDITOR_OPEN:
21+
const {file, options} = action.payload;
22+
open(file, options);
23+
return editor;
24+
25+
case EDITOR_INSERT:
26+
insert(action.payload.content);
27+
return editor;
28+
29+
case EDITOR_SET:
30+
set(action.payload.content);
31+
return editor;
32+
1733
default:
1834
return editor;
1935
}

src/modules/editor/types.ts

+3
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
export const EDITOR_DEVTOOLS_TOGGLE = 'EDITOR_DEVTOOLS_TOGGLE';
2+
export const EDITOR_INSERT = 'EDITOR_INSERT';
3+
export const EDITOR_OPEN = 'EDITOR_OPEN';
24
export const EDITOR_SAVE = 'EDITOR_SAVE';
5+
export const EDITOR_SET = 'EDITOR_SET';

src/components/Page/PageToolbar/Continue/index.tsx renamed to src/modules/page/Continue/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22
import {connect} from 'react-redux';
33
import RaisedButton from 'material-ui/RaisedButton';
4-
import {pageNext} from '../../../../actions';
4+
import {pageNext} from '../actions';
55

66
const styles = {
77
zIndex: '10000',

0 commit comments

Comments
 (0)