Skip to content

Commit 8e5163f

Browse files
committed
add propTypes, use newly create react-router-sans-urls
1 parent 618de51 commit 8e5163f

File tree

24 files changed

+136
-71
lines changed

24 files changed

+136
-71
lines changed

lib/components/Alert/index.js

+9
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,12 @@ var Alert = (function (_super) {
4646
}(React.Component));
4747
Object.defineProperty(exports, "__esModule", { value: true });
4848
exports.default = Alert;
49+
Alert.propTypes = {
50+
alert: React.PropTypes.shape({
51+
action: React.PropTypes.string,
52+
message: React.PropTypes.string,
53+
duration: React.PropTypes.number.optional,
54+
color: React.PropTypes.string,
55+
}),
56+
alertClose: React.PropTypes.func.optional
57+
};

lib/components/AppMenu/CloseWindow.js

+3
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,6 @@ var CloseWindow = (function (_super) {
3636
}(React.Component));
3737
Object.defineProperty(exports, "__esModule", { value: true });
3838
exports.default = CloseWindow;
39+
CloseWindow.propTypes = {
40+
windowToggle: React.PropTypes.func.optional,
41+
};

lib/components/AppMenu/MenuLink/index.js

+5
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,8 @@ var MenuLink = (function (_super) {
3838
}(React.Component));
3939
Object.defineProperty(exports, "__esModule", { value: true });
4040
exports.default = MenuLink;
41+
MenuLink.propTypes = {
42+
route: React.PropTypes.string,
43+
title: React.PropTypes.string.optional,
44+
routeSet: React.PropTypes.func.optional,
45+
};

lib/components/AppMenu/Quit/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,6 @@ var Quit = (function (_super) {
3939
}(React.Component));
4040
Object.defineProperty(exports, "__esModule", { value: true });
4141
exports.default = Quit;
42+
Quit.propTypes = {
43+
quit: React.PropTypes.func.optional,
44+
};

lib/components/AppMenu/index.js

+3
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,6 @@ var AppMenu = (function (_super) {
4040
}(React.Component));
4141
Object.defineProperty(exports, "__esModule", { value: true });
4242
exports.default = AppMenu;
43+
AppMenu.propTypes = {
44+
route: React.PropTypes.string.optional,
45+
};

lib/components/AppMenu/issuesLink.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use strict";
2+
var React = require('react');
3+
var MenuItem_1 = require('material-ui/MenuItem');
4+
function issuesLink() {
5+
var tutorial = store.getState().tutorial;
6+
if (!tutorial || !tutorial.config || !tutorial.config.issuesPath) {
7+
return null;
8+
}
9+
return (React.createElement(MenuItem_1.default, {key: 'issue', className: 'link'},
10+
React.createElement("a", {href: tutorial.config.issuesPath}, "post issue")
11+
));
12+
}
13+
Object.defineProperty(exports, "__esModule", { value: true });
14+
exports.default = issuesLink;

lib/components/Common/RouteButton.js

+6
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,9 @@ var RouteButton = (function (_super) {
3434
}(React.Component));
3535
Object.defineProperty(exports, "__esModule", { value: true });
3636
exports.default = RouteButton;
37+
RouteButton.propTypes = {
38+
label: React.PropTypes.string,
39+
route: React.PropTypes.string,
40+
routeSet: React.PropTypes.func.optional,
41+
style: React.PropTypes.object.optional,
42+
};

lib/components/FinalPage/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,4 @@ var FinalPage = (function (_super) {
5353
}(React.Component));
5454
Object.defineProperty(exports, "__esModule", { value: true });
5555
exports.default = FinalPage;
56+
FinalPage.propTypes = {};

lib/components/SidePanel/SidePanel.js

+9-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1515
};
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
18-
var Routes_1 = require('../Routes');
18+
var react_router_sans_urls_1 = require('react-router-sans-urls');
1919
var index_1 = require('../index');
2020
var Drawer_1 = require('material-ui/Drawer');
2121
var SidePanel = (function (_super) {
@@ -24,18 +24,24 @@ var SidePanel = (function (_super) {
2424
_super.apply(this, arguments);
2525
}
2626
SidePanel.prototype.render = function () {
27-
var isWindowOpen = this.props.isWindowOpen;
27+
var _a = this.props, isWindowOpen = _a.isWindowOpen, route = _a.route;
2828
return (React.createElement("section", null,
2929
React.createElement(Drawer_1.default, {width: 400, openSecondary: true, open: isWindowOpen},
3030
React.createElement("div", {className: 'cr-bg'},
3131
React.createElement(index_1.AppMenu, null),
32-
React.createElement(Routes_1.default, null))
32+
React.createElement(react_router_sans_urls_1.Router, {route: route},
33+
React.createElement(react_router_sans_urls_1.Route, {path: 'page', component: React.createElement(index_1.Page, null)}),
34+
React.createElement(react_router_sans_urls_1.Route, {path: 'progress', component: React.createElement(index_1.Progress, null)}),
35+
React.createElement(react_router_sans_urls_1.Route, {path: 'start', component: React.createElement(index_1.Start, null)}),
36+
React.createElement(react_router_sans_urls_1.Route, {path: 'tutorials', component: React.createElement(index_1.Tutorials, null)}),
37+
React.createElement(react_router_sans_urls_1.Route, {path: 'final', component: React.createElement(index_1.FinalPage, null)})))
3338
),
3439
React.createElement(index_1.Alert, null)));
3540
};
3641
SidePanel = __decorate([
3742
react_redux_1.connect(function (state) { return ({
3843
isWindowOpen: state.window,
44+
route: state.route,
3945
}); }),
4046
__metadata('design:paramtypes', [])
4147
], SidePanel);

lib/components/common/ContentCard.js

+4
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ var ContentCard = function (_a) {
1717
};
1818
Object.defineProperty(exports, "__esModule", { value: true });
1919
exports.default = ContentCard;
20+
ContentCard.propTypes = {
21+
title: React.PropTypes.string,
22+
content: React.PropTypes.string.optional,
23+
};

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,6 @@
5656
"devDependencies": {
5757
"tslint": "3.13.0",
5858
"tslint-react": "0.4.0",
59-
"typescript": "^2.0.0-dev.20160707"
59+
"typescript": "^2.0.0"
6060
}
6161
}

src/components/Alert/index.tsx

+9-1
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,12 @@ export default class Alert extends React.Component<{
3939
}
4040
}
4141

42-
// action={action || ''} removed from Snackbar as of Material 0.15.1 due to bug
42+
Alert.propTypes = {
43+
alert: React.PropTypes.shape({
44+
action: React.PropTypes.string,
45+
message: React.PropTypes.string,
46+
duration: React.PropTypes.number.optional,
47+
color: React.PropTypes.string,
48+
}),
49+
alertClose: React.PropTypes.func.optional
50+
};

src/components/AppMenu/CloseWindow.tsx

+5-1
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,15 @@ import NavigationClose from 'material-ui/svg-icons/navigation/close';
88
@connect(null, { windowToggle })
99
export default class CloseWindow extends React.Component<{
1010
windowToggle?: any}, {}> {
11-
render() {
11+
public render() {
1212
return (
1313
<IconButton onClick={this.props.windowToggle}>
1414
<NavigationClose color='white'/>
1515
</IconButton>
1616
);
1717
}
1818
}
19+
20+
CloseWindow.propTypes = {
21+
windowToggle: React.PropTypes.func.optional,
22+
};

src/components/AppMenu/MenuLink/index.tsx

+6
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,9 @@ export default class MenuLink extends React.Component<{
2525
);
2626
}
2727
}
28+
29+
MenuLink.propTypes = {
30+
route: React.PropTypes.string,
31+
title: React.PropTypes.string.optional,
32+
routeSet: React.PropTypes.func.optional,
33+
};

src/components/AppMenu/Quit/index.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,7 @@ export default class Quit extends React.Component<{
2727
);
2828
}
2929
}
30+
31+
Quit.propTypes = {
32+
quit: React.PropTypes.func.optional,
33+
};

src/components/AppMenu/index.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@ export default class AppMenu extends React.Component<{
2929
);
3030
}
3131
}
32+
33+
AppMenu.propTypes = {
34+
route: React.PropTypes.string.optional,
35+
};

src/components/AppMenu/issuesLink.tsx

+20-19
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1-
// import * as React from 'react';
2-
// import MenuItem from 'material-ui/MenuItem';
3-
//
4-
// export default function issuesLink() {
5-
// const tutorial = store.getState().tutorial;
6-
// if (!tutorial || !tutorial.config || !tutorial.config.issuesPath) {
7-
// return null;
8-
// }
9-
// return (
10-
// <MenuItem
11-
// key='issue'
12-
// className='link'
13-
// >
14-
// <a href={tutorial.config.issuesPath}>
15-
// post issue
16-
// </a>
17-
// </MenuItem>
18-
// );
19-
// }
1+
import * as React from 'react';
2+
3+
import MenuItem from 'material-ui/MenuItem';
4+
5+
export default function issuesLink() {
6+
const tutorial = store.getState().tutorial;
7+
if (!tutorial || !tutorial.config || !tutorial.config.issuesPath) {
8+
return null;
9+
}
10+
return (
11+
<MenuItem
12+
key='issue'
13+
className='link'
14+
>
15+
<a href={tutorial.config.issuesPath}>
16+
post issue
17+
</a>
18+
</MenuItem>
19+
);
20+
}

src/components/Common/RouteButton.tsx

+7
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,10 @@ export default class RouteButton extends React.Component<{
2020
);
2121
}
2222
}
23+
24+
RouteButton.propTypes = {
25+
label: React.PropTypes.string,
26+
route: React.PropTypes.string,
27+
routeSet: React.PropTypes.func.optional,
28+
style: React.PropTypes.object.optional,
29+
};

src/components/FinalPage/index.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,5 @@ export default class FinalPage extends React.Component<{}, {}> {
4242
);
4343
}
4444
}
45+
46+
FinalPage.propTypes = {};

src/components/Routes/index.tsx

-38
This file was deleted.

src/components/SidePanel/SidePanel.tsx

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
import * as React from 'react';
22
import {connect} from 'react-redux';
3+
import {Route, Router} from 'react-router-sans-urls';
34

4-
import Routes from '../Routes';
5-
import {Alert, AppMenu} from '../index';
5+
import {Alert, AppMenu, FinalPage, Page, Progress, Start, Tutorials} from '../index';
66
import Drawer from 'material-ui/Drawer';
77
import Menu from 'material-ui/svg-icons/navigation/menu';
88

99
@connect(state => ({
1010
isWindowOpen: state.window,
11+
route: state.route,
1112
}))
1213
export default class SidePanel extends React.Component<{
1314
isWindowOpen?: boolean
1415
}, {}> {
1516
public render(): React.ReactElement<{}> {
16-
const {isWindowOpen} = this.props;
17+
const {isWindowOpen, route} = this.props;
1718
return (
1819
<section>
1920
<Drawer
@@ -23,7 +24,13 @@ export default class SidePanel extends React.Component<{
2324
>
2425
<div className='cr-bg'>
2526
<AppMenu />
26-
<Routes />
27+
<Router route={route}>
28+
<Route path='page' component={<Page />} />
29+
<Route path='progress' component={<Progress />} />
30+
<Route path='start' component={<Start />} />
31+
<Route path='tutorials' component={<Tutorials />} />
32+
<Route path='final' component={<FinalPage />} />
33+
</Router>
2734
</div>
2835
</Drawer>
2936
<Alert />

src/components/common/ContentCard.tsx

+5
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,8 @@ const ContentCard: React.StatelessComponent<{
2020
</Card>
2121
);
2222
export default ContentCard;
23+
24+
ContentCard.propTypes = {
25+
title: React.PropTypes.string,
26+
content: React.PropTypes.string.optional,
27+
};

src/typings.d.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
/// <reference path="../node_modules/core-coderoad/src/typings/index.d.ts" />
22
// load typings from core-coderoad
33
// this requires that the module be declared first
4-
declare module 'core-coderoad' {}
4+
declare module 'core-coderoad';

tsconfig.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"compileOnSave": false,
3-
"buildOnSave": false,
2+
"compileOnSave": true,
3+
"buildOnSave": true,
44
"compilerOptions": {
55
"target": "ES5",
66
"module": "commonjs",
@@ -13,7 +13,8 @@
1313
"emitDecoratorMetadata": true,
1414
"outDir": "lib",
1515
"moduleResolution": "node",
16-
"rootDirs": ["src"]
16+
"rootDirs": ["src"],
17+
"strictNullChecks": true
1718
},
1819
"filesGlob": [
1920
"typings.d.ts",

0 commit comments

Comments
 (0)