Skip to content

Commit 339d092

Browse files
committed
toolbar component added
1 parent 937ea83 commit 339d092

File tree

18 files changed

+141
-78
lines changed

18 files changed

+141
-78
lines changed

lib/components/account/account.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ var default_1 = (function (_super) {
1111
_super.apply(this, arguments);
1212
}
1313
default_1.prototype.render = function () {
14-
return (React.createElement("section", {className: 'cr-account'}, React.createElement("h3", null, "Account")));
14+
return (React.createElement("section", {className: 'cr-account'},
15+
React.createElement("h3", null, "Account")
16+
));
1517
};
1618
return default_1;
1719
}(React.Component));

lib/components/app/app.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ var default_1 = (function (_super) {
3030
};
3131
default_1.prototype.render = function () {
3232
var state = this.props.state;
33-
return (React.createElement("section", {className: 'cr'}, React.createElement(_components_1.Menu, {route: state.route, position: state.position}), React.createElement(_components_1.Router, {state: state}), React.createElement(_components_1.Alert, {alert: state.alert})));
33+
return (React.createElement("section", {className: 'cr'},
34+
React.createElement(_components_1.Menu, {route: state.route, position: state.position}),
35+
React.createElement(_components_1.Router, {state: state}),
36+
React.createElement(_components_1.Alert, {alert: state.alert})));
3437
};
3538
default_1.childContextTypes = {
3639
muiTheme: React.PropTypes.object,

lib/components/menu/menu.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ var default_1 = (function (_super) {
3939
default_1.prototype.menuOptions = function () {
4040
switch (this.props.route) {
4141
case 'page':
42-
return (React.createElement("div", null, React.createElement(material_ui_1.MenuItem, {primaryText: 'progress', onClick: this.props.routeToProgress}), React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onClick: this.props.routeToProjects})));
42+
return (React.createElement("div", null,
43+
React.createElement(material_ui_1.MenuItem, {primaryText: 'progress', onClick: this.props.routeToProgress}),
44+
React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onClick: this.props.routeToProjects})));
4345
case 'progress':
4446
return React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onClick: this.props.routeToProjects});
4547
default: return null;
@@ -49,7 +51,17 @@ var default_1 = (function (_super) {
4951
render_1.togglePanel();
5052
};
5153
default_1.prototype.render = function () {
52-
return (React.createElement(material_ui_1.AppBar, {title: 'CodeRoad', className: 'cr-menu-bar', iconElementLeft: React.createElement(material_ui_1.IconButton, {onClick: this.closePanel}, React.createElement(NavigationClose, null)), iconElementRight: React.createElement(material_ui_1.IconMenu, {iconButtonElement: React.createElement(material_ui_1.IconButton, null, React.createElement(MoreVertIcon, null)), targetOrigin: { horizontal: 'right', vertical: 'top' }, anchorOrigin: { horizontal: 'right', vertical: 'top' }}, this.menuOptions(), window.coderoad.issuesPath ? React.createElement(material_ui_1.MenuItem, null, React.createElement("a", {href: window.coderoad.issuesPath}, "post issue")) : null, React.createElement(material_ui_1.Divider, null), React.createElement(material_ui_1.MenuItem, {primaryText: 'quit', onClick: this.props.quit}))}));
54+
return (React.createElement(material_ui_1.AppBar, {title: 'CodeRoad', className: 'cr-menu-bar', iconElementLeft: React.createElement(material_ui_1.IconButton, {onClick: this.closePanel},
55+
React.createElement(NavigationClose, null)
56+
), iconElementRight: React.createElement(material_ui_1.IconMenu, {iconButtonElement: React.createElement(material_ui_1.IconButton, null,
57+
React.createElement(MoreVertIcon, null)
58+
), targetOrigin: { horizontal: 'right', vertical: 'top' }, anchorOrigin: { horizontal: 'right', vertical: 'top' }},
59+
this.menuOptions(),
60+
window.coderoad.issuesPath ? React.createElement(material_ui_1.MenuItem, null,
61+
React.createElement("a", {href: window.coderoad.issuesPath}, "post issue")
62+
) : null,
63+
React.createElement(material_ui_1.Divider, null),
64+
React.createElement(material_ui_1.MenuItem, {primaryText: 'quit', onClick: this.props.quit}))}));
5365
};
5466
default_1 = __decorate([
5567
react_redux_1.connect(null, function (dispatch) {

lib/components/page/chapter.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ var _components_1 = require('../_components');
44
Object.defineProperty(exports, "__esModule", { value: true });
55
exports.default = function (_a) {
66
var chapter = _a.chapter;
7-
return (React.createElement("section", {className: 'cr-chapter'}, React.createElement(_components_1.MarkdownText, {text: chapter.title})));
7+
return (React.createElement("section", {className: 'cr-chapter'},
8+
React.createElement(_components_1.MarkdownText, {text: chapter.title})
9+
));
810
};

lib/components/page/content.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ var _components_1 = require('../_components');
44
var material_ui_1 = require('material-ui');
55
function default_1(_a) {
66
var page = _a.page;
7-
return (React.createElement(material_ui_1.Card, null, React.createElement(material_ui_1.CardHeader, {title: page.title}), React.createElement(material_ui_1.CardText, null, React.createElement(_components_1.MarkdownText, {text: page.description}))));
7+
return (React.createElement(material_ui_1.Card, null,
8+
React.createElement(material_ui_1.CardHeader, {title: page.title}),
9+
React.createElement(material_ui_1.CardText, null,
10+
React.createElement(_components_1.MarkdownText, {text: page.description})
11+
)));
812
}
913
Object.defineProperty(exports, "__esModule", { value: true });
1014
exports.default = default_1;

lib/components/page/edit.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
66
exports.default = function (editPath) {
77
if (editPath && window.coderoad.edit) {
88
var repoPath = path.join(window.coderoad.repo, 'edit', 'master', editPath);
9-
return React.createElement("a", {href: repoPath}, React.createElement(Edit, {style: { position: 'absolute', top: '10px', right: '10px' }}));
9+
return React.createElement("a", {href: repoPath},
10+
React.createElement(Edit, {style: { position: 'absolute', top: '10px', right: '10px' }})
11+
);
1012
}
1113
};

lib/components/page/hint.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,15 @@ function hintsShown(task, hintPosition) {
1010
}
1111
exports.TaskHint = function (_a) {
1212
var hint = _a.hint, index = _a.index;
13-
return (React.createElement(material_ui_1.ListItem, {className: 'cr-task-hint', key: 'hint' + index}, React.createElement("div", {class: 'cr-task-hint-box'}, React.createElement("span", {className: 'cr-task-hint-index'}, index + 1, "."), React.createElement("div", {className: 'cr-task-hint-description'}, React.createElement(_components_1.MarkdownText, {text: hint})))));
13+
return (React.createElement(material_ui_1.ListItem, {className: 'cr-task-hint', key: 'hint' + index},
14+
React.createElement("div", {class: 'cr-task-hint-box'},
15+
React.createElement("span", {className: 'cr-task-hint-index'},
16+
index + 1,
17+
"."),
18+
React.createElement("div", {className: 'cr-task-hint-description'},
19+
React.createElement(_components_1.MarkdownText, {text: hint})
20+
))
21+
));
1422
};
1523
exports.TaskHints = function (_a) {
1624
var task = _a.task, hintPosition = _a.hintPosition;

lib/components/page/page-complete.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ var _components_1 = require('../_components');
55
exports.PageCompleteMessage = function (_a) {
66
var page = _a.page;
77
return (React.createElement("div", {className: 'cr-task-onComplete-description'}, page.completed && page.onPageComplete ?
8-
React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', key: 'page-complete'}, React.createElement(_components_1.MarkdownText, {text: page.onPageComplete}))
8+
React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', key: 'page-complete'},
9+
React.createElement(_components_1.MarkdownText, {text: page.onPageComplete})
10+
)
911
: null));
1012
};

lib/components/page/page.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,10 @@ var Incomplete = require(iconPath + 'toggle/check-box-outline-blank');
2424
var RunningTest = require(iconPath + 'toggle/indeterminate-check-box');
2525
var material_ui_2 = require('material-ui');
2626
var content_1 = require('./content');
27+
var task_1 = require('./task');
2728
var hint_1 = require('./hint');
2829
var page_complete_1 = require('./page-complete');
29-
var task_1 = require('./task');
30+
var toolbar_1 = require('./toolbar');
3031
var Info = require(iconPath + 'action/info');
3132
var InfoOutline = require(iconPath + 'action/info-outline');
3233
var style = {
@@ -68,14 +69,15 @@ var default_1 = (function (_super) {
6869
var _a = this.props, page = _a.page, taskPosition = _a.taskPosition, hintPosition = _a.hintPosition, tasks = _a.tasks, runTests = _a.runTests;
6970
var currentTask = taskPosition <= tasks.length ? tasks[taskPosition] : null;
7071
var allComplete = taskPosition >= tasks.length;
71-
return (React.createElement(material_ui_2.Paper, {style: style, zDepth: 1, className: 'cr-page'}, React.createElement(content_1.default, {page: page}), React.createElement(material_ui_1.Divider, null), React.createElement(material_ui_1.List, {subheader: 'Tasks', className: 'cr-tasks', ref: 'tasks'}, React.createElement(task_1.Tasks, {tasks: tasks, taskPosition: taskPosition, runTests: runTests}), React.createElement(hint_1.TaskHints, {task: currentTask, hintPosition: hintPosition}), React.createElement(page_complete_1.PageCompleteMessage, {page: page}), React.createElement("div", {ref: 'listEnd'})), React.createElement("section", {className: 'cr-page-toolbar'}, React.createElement(material_ui_2.LinearProgress, {mode: 'determinate', value: taskProgress(taskPosition, tasks.length), style: { height: '6px' }}), React.createElement(material_ui_2.Toolbar, null, currentTask && currentTask.hints && currentTask.hints.length ?
72-
React.createElement(material_ui_2.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
73-
React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this, currentTask)})
74-
: React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
75-
: null, React.createElement(material_ui_2.ToolbarGroup, {float: 'right'}, allComplete ?
76-
React.createElement(material_ui_2.RaisedButton, {label: 'Continue', primary: true, onClick: this.props.callNextPage})
77-
:
78-
React.createElement(material_ui_2.RaisedButton, {label: 'Run', secondary: true, onClick: this.props.callRunTests}))))));
72+
return (React.createElement(material_ui_2.Paper, {style: style, zDepth: 1, className: 'cr-page'},
73+
React.createElement(content_1.default, {page: page}),
74+
React.createElement(material_ui_1.Divider, null),
75+
React.createElement(material_ui_1.List, {subheader: 'Tasks', className: 'cr-page-list', ref: 'tasks'},
76+
React.createElement(task_1.Tasks, {tasks: tasks, taskPosition: taskPosition, runTests: runTests}),
77+
React.createElement(hint_1.TaskHints, {task: currentTask, hintPosition: hintPosition}),
78+
React.createElement(page_complete_1.PageCompleteMessage, {page: page}),
79+
React.createElement("div", {ref: 'listEnd'})),
80+
React.createElement(toolbar_1.default, {tasks: tasks, taskPosition: taskPosition, hintPosition: hintPosition})));
7981
};
8082
default_1 = __decorate([
8183
react_redux_1.connect(null, function (dispatch, state) {

lib/components/page/task.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,15 @@ var TaskCheckbox = function (_a) {
2626
};
2727
var TaskIndex = function (_a) {
2828
var index = _a.index;
29-
return (React.createElement("span", {className: 'cr-task-index'}, index + 1, "."));
29+
return (React.createElement("span", {className: 'cr-task-index'},
30+
index + 1,
31+
"."));
3032
};
3133
var TaskContent = function (_a) {
3234
var task = _a.task;
33-
return (React.createElement("div", {className: 'cr-task-description'}, React.createElement(_components_1.MarkdownText, {text: task.description})));
35+
return (React.createElement("div", {className: 'cr-task-description'},
36+
React.createElement(_components_1.MarkdownText, {text: task.description})
37+
));
3438
};
3539
exports.Task = function (_a) {
3640
var task = _a.task, taskPosition = _a.taskPosition, index = _a.index, runTests = _a.runTests;
@@ -43,7 +47,10 @@ exports.Task = function (_a) {
4347
else if (isCurrentTask) {
4448
taskClass += 'isCurrentTask';
4549
}
46-
return (React.createElement(material_ui_1.ListItem, {key: index, className: taskClass}, React.createElement(TaskCheckbox, {index: index, taskPosition: taskPosition, runTests: runTests}), React.createElement(TaskIndex, {index: index}), React.createElement(TaskContent, {task: task})));
50+
return (React.createElement(material_ui_1.ListItem, {key: index, className: taskClass},
51+
React.createElement(TaskCheckbox, {index: index, taskPosition: taskPosition, runTests: runTests}),
52+
React.createElement(TaskIndex, {index: index}),
53+
React.createElement(TaskContent, {task: task})));
4754
};
4855
exports.Tasks = function (_a) {
4956
var tasks = _a.tasks, taskPosition = _a.taskPosition, runTests = _a.runTests;

lib/components/page/toolbar.js

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,26 +44,39 @@ var default_1 = (function (_super) {
4444
}
4545
};
4646
default_1.prototype.render = function () {
47-
var _a = this.props, tasks = _a.tasks, taskPosition = _a.taskPosition, hintPosition = _a.hintPosition, callNextPage = _a.callNextPage, callRunTests = _a.callRunTests;
47+
var _a = this.props, tasks = _a.tasks, taskPosition = _a.taskPosition, hintPosition = _a.hintPosition, callNextPage = _a.callNextPage, callRunTests = _a.callRunTests, showHint = _a.showHint;
4848
var currentTask = taskPosition <= tasks.length ? tasks[taskPosition] : null;
4949
var progress = taskProgress(taskPosition, tasks.length);
5050
var allComplete = taskPosition >= tasks.length;
51-
return (React.createElement("section", {className: 'cr-page-toolbar'}, React.createElement(ProgressBar, {progress: progress}), React.createElement(material_ui_1.Toolbar, null, currentTask && currentTask.hints && currentTask.hints.length ?
52-
React.createElement(material_ui_1.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
53-
React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this)})
54-
: React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
55-
: null, React.createElement(material_ui_1.ToolbarGroup, {float: 'right'}, allComplete ?
56-
React.createElement(material_ui_1.RaisedButton, {label: 'Continue', primary: true, onClick: callNextPage})
57-
:
58-
React.createElement(material_ui_1.RaisedButton, {label: 'Run', secondary: true, onClick: callRunTests})))));
51+
return (React.createElement("section", {className: 'cr-page-toolbar'},
52+
React.createElement(ProgressBar, {progress: progress}),
53+
React.createElement(material_ui_1.Toolbar, null,
54+
currentTask && currentTask.hints && currentTask.hints.length ?
55+
React.createElement(material_ui_1.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
56+
React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: showHint.bind(this, currentTask, hintPosition)})
57+
: React.createElement(material_ui_1.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
58+
: null,
59+
React.createElement(material_ui_1.ToolbarGroup, {float: 'right'}, allComplete ?
60+
React.createElement(material_ui_1.RaisedButton, {label: 'Continue', primary: true, onClick: callNextPage})
61+
:
62+
React.createElement(material_ui_1.RaisedButton, {label: 'Run', secondary: true, onClick: callRunTests})))));
5963
};
6064
default_1 = __decorate([
6165
react_redux_1.connect(null, function (dispatch, state) {
6266
return {
6367
callNextPage: function () { return dispatch(Action.nextPage()); },
6468
callRunTests: function () { return dispatch(Action.runTests()); },
6569
toggleLog: function () { return dispatch(Action.toggleLog()); },
66-
showHint: function (newHintPos) { return dispatch(Action.setHintPosition(newHintPos)); }
70+
showHint: function (task, hintPosition) {
71+
if (task && task.hints && task.hints.length) {
72+
if (hintPosition < task.hints.length - 1) {
73+
dispatch(Action.setHintPosition(hintPosition + 1));
74+
}
75+
}
76+
else {
77+
dispatch(Action.setHintPosition(-1));
78+
}
79+
}
6780
};
6881
}),
6982
__metadata('design:paramtypes', [])

lib/components/progress/progress.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,16 @@ var style = {
8888
Object.defineProperty(exports, "__esModule", { value: true });
8989
exports.default = function (_a) {
9090
var progress = _a.progress, position = _a.position;
91-
return (React.createElement(material_ui_1.Paper, {style: style, zDepth: 1, className: 'cr-progress'}, React.createElement(material_ui_1.List, {subheader: 'Progress'}, progress.chapters.map(function (chapter, chapterIndex) {
92-
var isActive = chapterIndex === position.chapter;
93-
return React.createElement(material_ui_1.ListItem, {primaryText: (chapterIndex + 1) + ". " + chapter.title, className: classnames({
94-
'chapter': true,
95-
'isActive': isActive
96-
}), secondaryText: chapter.description, secondaryTextLines: chapter.description.length > 35 ? 2 : 1, initiallyOpen: chapterIndex === 0, leftIcon: chapter.completed ? React.createElement(AllCompleted, null) : null, primaryTogglesNestedList: chapterIndex === position.chapter && !chapter.completed, nestedItems: chapter.pages.map(function (page, pageIndex) {
97-
var itemPosition = { chapter: chapterIndex, page: pageIndex };
98-
return React.createElement(ProgressPage, {page: page, itemPosition: itemPosition, position: position});
99-
})});
100-
}))));
91+
return (React.createElement(material_ui_1.Paper, {style: style, zDepth: 1, className: 'cr-progress'},
92+
React.createElement(material_ui_1.List, {subheader: 'Progress'}, progress.chapters.map(function (chapter, chapterIndex) {
93+
var isActive = chapterIndex === position.chapter;
94+
return React.createElement(material_ui_1.ListItem, {primaryText: (chapterIndex + 1) + ". " + chapter.title, className: classnames({
95+
'chapter': true,
96+
'isActive': isActive
97+
}), secondaryText: chapter.description, secondaryTextLines: chapter.description.length > 35 ? 2 : 1, initiallyOpen: chapterIndex === 0, leftIcon: chapter.completed ? React.createElement(AllCompleted, null) : null, primaryTogglesNestedList: chapterIndex === position.chapter && !chapter.completed, nestedItems: chapter.pages.map(function (page, pageIndex) {
98+
var itemPosition = { chapter: chapterIndex, page: pageIndex };
99+
return React.createElement(ProgressPage, {page: page, itemPosition: itemPosition, position: position});
100+
})});
101+
}))
102+
));
101103
};

0 commit comments

Comments
 (0)