Skip to content

Commit 9155fd7

Browse files
committed
load routes from core
1 parent e3f48a4 commit 9155fd7

28 files changed

+265
-40
lines changed

lib/actions.js

+14-14
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,17 @@ exports.pageNext = actions_4.pageNext;
1717
var actions_5 = require('./modules/progress/actions');
1818
exports.progressLoad = actions_5.progressLoad;
1919
exports.progressCompletePage = actions_5.progressCompletePage;
20-
var actions_6 = require('./modules/route/actions');
21-
exports.routeSet = actions_6.routeSet;
22-
var actions_7 = require('./modules/setup/actions');
23-
exports.setupVerify = actions_7.setupVerify;
24-
exports.setupPackage = actions_7.setupPackage;
25-
var actions_8 = require('./modules/tests/actions');
26-
exports.testRun = actions_8.testRun;
27-
exports.testResult = actions_8.testResult;
28-
exports.testComplete = actions_8.testComplete;
29-
var actions_9 = require('./modules/tutorial/actions');
30-
exports.tutorialSet = actions_9.tutorialSet;
31-
var actions_10 = require('./modules/tutorials/actions');
32-
exports.tutorialsFind = actions_10.tutorialsFind;
33-
exports.tutorialUpdate = actions_10.tutorialUpdate;
20+
var route_1 = require('core-coderoad/lib/route');
21+
exports.routeSet = route_1.routeSet;
22+
var actions_6 = require('./modules/setup/actions');
23+
exports.setupVerify = actions_6.setupVerify;
24+
exports.setupPackage = actions_6.setupPackage;
25+
var actions_7 = require('./modules/tests/actions');
26+
exports.testRun = actions_7.testRun;
27+
exports.testResult = actions_7.testResult;
28+
exports.testComplete = actions_7.testComplete;
29+
var actions_8 = require('./modules/tutorial/actions');
30+
exports.tutorialSet = actions_8.tutorialSet;
31+
var actions_9 = require('./modules/tutorials/actions');
32+
exports.tutorialsFind = actions_9.tutorialsFind;
33+
exports.tutorialUpdate = actions_9.tutorialUpdate;

lib/components/Routes/RouteButton.tsx

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import * as React from 'react';
2+
import {connect} from 'react-redux';
3+
import RaisedButton from 'material-ui/RaisedButton';
4+
import {routeSet} from './actions';
5+
6+
@connect(null, dispatch => {
7+
return {
8+
routeTo: (route: string) => dispatch(routeSet(route))
9+
};
10+
})
11+
export default class RouteButton extends React.Component<{
12+
label: string, route: string, routeTo?: any, style?: Object
13+
}, {}> {
14+
render() {
15+
const {label, route, style, routeTo} = this.props;
16+
return (
17+
<RaisedButton
18+
label={label}
19+
style={style || {}}
20+
onTouchTap={routeTo.bind(this, route)}
21+
secondary={true}
22+
/>
23+
);
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"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 React = require('react');
8+
var Stepper_1 = require('material-ui/Stepper');
9+
var DynamicStepper = (function (_super) {
10+
__extends(DynamicStepper, _super);
11+
function DynamicStepper(props) {
12+
_super.call(this, props);
13+
this.state = {
14+
stepIndex: this.props.status.indexOf(false) || 0
15+
};
16+
}
17+
DynamicStepper.prototype.render = function () {
18+
return (React.createElement(Stepper_1.Stepper, {activeStep: this.state.stepIndex, linear: false, orientation: 'vertical'}, this.props.children));
19+
};
20+
return DynamicStepper;
21+
}(React.Component));
22+
Object.defineProperty(exports, "__esModule", { value: true });
23+
exports.default = DynamicStepper;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
"use strict";
2+
var React = require('react');
3+
var InstallGuide = function (_a) {
4+
var checks = _a.checks;
5+
if (!checks || !checks.passed) {
6+
return null;
7+
}
8+
return (React.createElement("div", {className: 'setup-guide'}, "Check the", React.createElement("a", {href: 'https://coderoad.github.io/docs#install'}, " ", React.createElement("strong", null, "Install Guide"))));
9+
};
10+
Object.defineProperty(exports, "__esModule", { value: true });
11+
exports.default = InstallGuide;
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"use strict";
2+
var React = require('react');
3+
var Card_1 = require('material-ui/Card');
4+
var FlatButton_1 = require('material-ui/FlatButton');
5+
var VerifyButton_1 = require('./VerifyButton');
6+
var DynamicStepper_1 = require('./DynamicStepper');
7+
var StepCheck_1 = require('./StepCheck');
8+
var SetupChecks = function (_a) {
9+
var checks = _a.checks;
10+
var setup = checks.setup;
11+
if (setup.passed) {
12+
return null;
13+
}
14+
var hasDir = setup.hasDir, hasPackageJson = setup.hasPackageJson, hasTutorial = setup.hasTutorial;
15+
var status = [hasDir, hasPackageJson, hasTutorial];
16+
return (React.createElement(Card_1.Card, {className: 'cr-check'}, React.createElement(Card_1.CardHeader, {title: 'Setup Checks', subtitle: 'CodeRoad requires a brief setup'}), React.createElement(Card_1.CardText, null, React.createElement(DynamicStepper_1.default, {status: status}, React.createElement(StepCheck_1.default, {label: 'open a directory', completed: hasDir}, React.createElement("p", null, "File -> Open (a new folder)"), React.createElement("br", null), React.createElement(FlatButton_1.default, {label: 'Open Directory', secondary: true})), React.createElement(StepCheck_1.default, {label: 'package.json', completed: hasPackageJson}, "Create a package.json by running", React.createElement("br", null), React.createElement("code", null, "> npm init -y`"), React.createElement("br", null), React.createElement(FlatButton_1.default, {label: 'Create package.json', secondary: true})), React.createElement(StepCheck_1.default, {label: 'install a tutorial', completed: hasTutorial}, "Install a tutorial using npm. For example:", React.createElement("br", null), React.createElement("code", null, "> npm install --save-dev coderoad-functional-school"), React.createElement("br", null)))), React.createElement(Card_1.CardActions, null, React.createElement(VerifyButton_1.default, null))));
17+
};
18+
Object.defineProperty(exports, "__esModule", { value: true });
19+
exports.default = SetupChecks;
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use strict";
2+
var React = require('react');
3+
var Stepper_1 = require('material-ui/Stepper');
4+
var FontIcon_1 = require('material-ui/FontIcon');
5+
var warning_1 = require('material-ui/svg-icons/alert/warning');
6+
var colors_1 = require('material-ui/styles/colors');
7+
var StepCheck = function (_a) {
8+
var completed = _a.completed, label = _a.label, children = _a.children;
9+
return (React.createElement(Stepper_1.Step, {completed: completed, active: !completed}, React.createElement(Stepper_1.StepLabel, {icon: completed
10+
? React.createElement(FontIcon_1.default, null, "✓")
11+
: React.createElement(warning_1.default, {color: colors_1.red500})}, label), React.createElement(Stepper_1.StepContent, null, children, React.createElement("br", null))));
12+
};
13+
Object.defineProperty(exports, "__esModule", { value: true });
14+
exports.default = StepCheck;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"use strict";
2+
var React = require('react');
3+
var Card_1 = require('material-ui/Card');
4+
var FlatButton_1 = require('material-ui/FlatButton');
5+
var VerifyButton_1 = require('./VerifyButton');
6+
var colors_1 = require('material-ui/styles/colors');
7+
var DynamicStepper_1 = require('./DynamicStepper');
8+
var StepCheck_1 = require('./StepCheck');
9+
var SystemChecks = function (_a) {
10+
var checks = _a.checks;
11+
var system = checks.system;
12+
if (system.passed) {
13+
return null;
14+
}
15+
var status = [system.node, system.npm];
16+
return (React.createElement(Card_1.Card, {className: 'cr-check'}, React.createElement(Card_1.CardHeader, {title: 'System Checks', subtitle: 'CodeRoad requires several key dependencies'}), React.createElement(Card_1.CardText, null, React.createElement(DynamicStepper_1.default, {status: status}, React.createElement(StepCheck_1.default, {label: 'Node >= 0.10', completed: system.node}, React.createElement("p", null, "Install a newer version of ", React.createElement("a", {style: { color: colors_1.pink500 }, href: 'https://nodejs.org'}, "NodeJS"))), React.createElement(StepCheck_1.default, {label: 'NPM >= 3', completed: system.npm}, "Update your version of NPM.", React.createElement("br", null), React.createElement("code", null, "> npm update -g npm"), React.createElement("br", null), React.createElement(FlatButton_1.default, {label: 'Update NPM', secondary: true})), React.createElement(StepCheck_1.default, {label: 'Xcode', completed: system.xcode}, React.createElement("p", null, "Install ", React.createElement("a", {style: { color: colors_1.pink500 }, href: 'https://developer.apple.com/xcode/download/'}, "XCode"))))), React.createElement(Card_1.CardActions, null, React.createElement(VerifyButton_1.default, null))));
17+
};
18+
Object.defineProperty(exports, "__esModule", { value: true });
19+
exports.default = SystemChecks;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
"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+
};
16+
var React = require('react');
17+
var FlatButton_1 = require('material-ui/FlatButton');
18+
var actions_1 = require('../../../actions');
19+
var react_redux_1 = require('react-redux');
20+
var VerifyButton = (function (_super) {
21+
__extends(VerifyButton, _super);
22+
function VerifyButton() {
23+
_super.apply(this, arguments);
24+
}
25+
VerifyButton.prototype.render = function () {
26+
return (React.createElement(FlatButton_1.default, {label: 'Verify Setup Complete', primtary: true, onTouchTap: this.props.verify}));
27+
};
28+
VerifyButton = __decorate([
29+
react_redux_1.connect(null, function (dispatch) {
30+
return {
31+
verify: function () { return dispatch(actions_1.setupVerify()); }
32+
};
33+
}),
34+
__metadata('design:paramtypes', [])
35+
], VerifyButton);
36+
return VerifyButton;
37+
}(React.Component));
38+
Object.defineProperty(exports, "__esModule", { value: true });
39+
exports.default = VerifyButton;

lib/components/Start/Checks/index.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"use strict";
2+
var React = require('react');
3+
var SystemChecks_1 = require('./SystemChecks');
4+
var SetupChecks_1 = require('./SetupChecks');
5+
var InstallGuide_1 = require('./InstallGuide');
6+
var index_1 = require('../../index');
7+
var styles = {
8+
margin: '5px',
9+
padding: '10px',
10+
};
11+
var Checks = function (_a) {
12+
var checks = _a.checks;
13+
if (!checks) {
14+
return React.createElement(index_1.ContentCard, {title: 'Error Loading Package.json', content: ''});
15+
}
16+
return (React.createElement("div", {style: styles}, !checks.system.passed
17+
? React.createElement(SystemChecks_1.default, {checks: checks})
18+
: null, !checks.setup.passed
19+
? React.createElement(SetupChecks_1.default, {checks: checks})
20+
: null, React.createElement(InstallGuide_1.default, {checks: checks})));
21+
};
22+
Object.defineProperty(exports, "__esModule", { value: true });
23+
exports.default = Checks;

lib/components/common/Alert.js

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
"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+
};
16+
var React = require('react');
17+
var react_redux_1 = require('react-redux');
18+
var Snackbar_1 = require('material-ui/Snackbar');
19+
var actions_1 = require('../../actions');
20+
var defaultAlert = {
21+
message: '',
22+
open: false,
23+
};
24+
var styles = {
25+
display: 'inline-block',
26+
margin: '0px 10px',
27+
};
28+
var Alert = (function (_super) {
29+
__extends(Alert, _super);
30+
function Alert() {
31+
_super.apply(this, arguments);
32+
}
33+
Alert.prototype.render = function () {
34+
var _a = this.props, alert = _a.alert, close = _a.close;
35+
var action = alert.action, message = alert.message, open = alert.open, duration = alert.duration, color = alert.color;
36+
return (React.createElement(Snackbar_1.default, {style: styles, bodyStyle: { color: color }, open: open, message: message || '', action: action || '', autoHideDuration: duration || 2000, onActionTouchTap: close, onRequestClose: close}));
37+
};
38+
Alert = __decorate([
39+
react_redux_1.connect(null, function (dispatch) {
40+
return {
41+
close: function () { return dispatch(actions_1.alertClose()); }
42+
};
43+
}),
44+
__metadata('design:paramtypes', [])
45+
], Alert);
46+
return Alert;
47+
}(React.Component));
48+
Object.defineProperty(exports, "__esModule", { value: true });
49+
exports.default = Alert;

lib/components/index.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@ var Routes_1 = require('./Routes');
1111
exports.Routes = Routes_1.default;
1212
var Start_1 = require('./Start');
1313
exports.Start = Start_1.default;
14+
var Checks_1 = require('./Start/Checks');
15+
exports.Checks = Checks_1.default;
16+
var Alert_1 = require('./common/Alert');
17+
exports.Alert = Alert_1.default;
1418
var Markdown_1 = require('./common/Markdown');
1519
exports.Markdown = Markdown_1.default;
1620
var ContentCard_1 = require('./common/ContentCard');
1721
exports.ContentCard = ContentCard_1.default;
18-
var alert_1 = require('../modules/alert');
19-
exports.Alert = alert_1.Alert;
20-
var route_1 = require('../modules/route');
21-
exports.RouteButton = route_1.RouteButton;
22-
var setup_1 = require('../modules/setup');
23-
exports.Checks = setup_1.Checks;
22+
var RouteButton_1 = require('./common/RouteButton');
23+
exports.RouteButton = RouteButton_1.default;
2424
var tutorials_1 = require('../modules/tutorials');
2525
exports.Tutorials = tutorials_1.Tutorials;
2626
var editor_1 = require('../modules/editor');

lib/modules/alert/index.js

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
"use strict";
22
var reducer_1 = require('./reducer');
33
exports.reducer = reducer_1.default;
4-
var Alert_1 = require('./Alert');
5-
exports.Alert = Alert_1.default;

lib/modules/setup/index.js

-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
"use strict";
2-
var Checks_1 = require('./Checks');
3-
exports.Checks = Checks_1.default;
42
var reducer_1 = require('./reducer');
53
exports.reducer = reducer_1.default;
64
var package_json_1 = require('./package-json');

lib/reducers.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var setup_1 = require('./modules/setup');
55
var hints_1 = require('./modules/hints');
66
var page_1 = require('./modules/page');
77
var progress_1 = require('./modules/progress');
8-
var route_1 = require('./modules/route');
8+
var route_1 = require('core-coderoad/lib/route');
99
var tests_1 = require('./modules/tests');
1010
var tutorial_1 = require('./modules/tutorial');
1111
var tutorials_1 = require('./modules/tutorials');

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
},
4040
"dependencies": {
4141
"atom-plugin-command-line": "^1.0.2",
42+
"core-coderoad": "0.1.0",
4243
"highlights": "1.3.1",
4344
"marked": "0.3.5",
4445
"material-ui": "0.15.0",

src/actions.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export {pageSet, pageNext} from './modules/page/actions';
66
export {
77
progressLoad, progressCompletePage
88
} from './modules/progress/actions';
9-
export {routeSet} from './modules/route/actions'
9+
export {routeSet} from 'core-coderoad/lib/route';
1010
export {setupVerify, setupPackage} from './modules/setup/actions';
1111
export {testRun, testResult, testComplete} from './modules/tests/actions';
1212
export {tutorialSet} from './modules/tutorial/actions';

src/modules/setup/Checks/index.tsx renamed to src/components/Start/Checks/index.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as React from 'react';
22
import SystemChecks from './SystemChecks';
33
import SetupChecks from './SetupChecks';
44
import InstallGuide from './InstallGuide';
5-
import {ContentCard} from '../../../components/index';
5+
import {ContentCard} from '../../index';
66

77
const styles = {
88
margin: '5px',

src/modules/alert/Alert.tsx renamed to src/components/common/Alert.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 Snackbar from 'material-ui/Snackbar';
4-
import {alertClose} from './actions';
4+
import {alertClose} from '../../actions';
55

66
const defaultAlert = {
77
message: '',

src/components/index.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ export {default as Page} from './Page';
44
export {default as Progress} from './Progress';
55
export {default as Routes} from './Routes';
66
export {default as Start} from './Start';
7+
export {default as Checks} from './Start/Checks';
8+
9+
export {default as Alert} from './common/Alert';
710
export {default as Markdown} from './common/Markdown';
811
export {default as ContentCard} from './common/ContentCard';
12+
export {default as RouteButton} from './common/RouteButton';
913

10-
export {Alert} from '../modules/alert';
11-
export {RouteButton} from '../modules/route';
12-
export {Checks} from '../modules/setup';
1314
export {Tutorials} from '../modules/tutorials';
1415
export {ToggleDevTools, Save} from '../modules/editor';
1516
export {Continue} from '../modules/page';

src/reducers.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {reducer as checks, packageJson} from './modules/setup';
66
import {reducer as hintPosition} from './modules/hints';
77
import {page, pagePosition, tasks, taskActions, taskTests} from './modules/page';
88
import {reducer as progress} from './modules/progress';
9-
import {reducer as route} from './modules/route';
9+
import {reducer as route} from 'core-coderoad/lib/route';
1010
import {testRun, taskPosition} from './modules/tests';
1111
import {reducer as tutorial} from './modules/tutorial';
1212
import {reducer as tutorials} from './modules/tutorials';

src/typings/cr/core.d.ts

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
declare module 'core-coderoad/lib/route' {
2+
export function reducer(route: string, action: Action): string;
3+
export function routeSet(route: string);
4+
}

0 commit comments

Comments
 (0)