Skip to content

Commit 5a7cadf

Browse files
committed
taskHints component
1 parent ae67f49 commit 5a7cadf

File tree

15 files changed

+151
-80
lines changed

15 files changed

+151
-80
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: 45 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ var TaskCheckbox = function (_a) {
5050
};
5151
var material_ui_2 = require('material-ui');
5252
var content_1 = require('./content');
53+
var hint_1 = require('./hint');
5354
var Info = require(iconPath + 'action/info');
5455
var InfoOutline = require(iconPath + 'action/info-outline');
5556
var style = {
@@ -93,30 +94,50 @@ var default_1 = (function (_super) {
9394
var tasks = visibleTasks(this.props.tasks, taskPosition);
9495
var currentTask = taskPosition <= tasks.length ? tasks[taskPosition] : null;
9596
var allComplete = taskPosition >= tasks.length;
96-
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'}, tasks.map(function (task, index) {
97-
var isCurrentTask = index === taskPosition;
98-
var isDisabledTask = index > taskPosition;
99-
var isCompletedTask = index < taskPosition;
100-
var isFinalTask = index >= tasks.length - 1;
101-
var hints = hintsShown(task, hintPosition);
102-
return (React.createElement("div", null, React.createElement(material_ui_1.ListItem, {ref: 'task' + index, className: classnames({
103-
'cr-task': true,
104-
'isCompletedTask': isCompletedTask,
105-
'isCurrentTask': isCurrentTask,
106-
'isDisabledTask': isDisabledTask
107-
})}, React.createElement(TaskCheckbox, {index: index, taskPosition: taskPosition, runTests: _this.props.runTests}), React.createElement("span", {className: 'cr-task-index'}, index + 1, "."), React.createElement("div", {className: 'cr-task-description'}, React.createElement(_components_1.MarkdownText, {text: task.description}))), isCurrentTask && hints ?
108-
hints.map(function (hint, indexHint) {
109-
return React.createElement(material_ui_1.ListItem, {className: 'cr-task-hint', ref: 'hint' + indexHint}, React.createElement("div", {class: 'cr-task-hint-box'}, React.createElement("span", {className: 'cr-task-hint-index'}, indexHint + 1, "."), React.createElement("div", {className: 'cr-task-hint-description'}, React.createElement(_components_1.MarkdownText, {text: hint}))));
110-
})
111-
: null, isFinalTask ? null : React.createElement(material_ui_1.Divider, null)));
112-
}), page.completed && !!page.onPageComplete ? React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', ref: 'onPageComplete'}, React.createElement("div", {className: 'cr-task-onComplete-description'}, React.createElement(_components_1.MarkdownText, {text: page.onPageComplete}))) : null, 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 ?
113-
React.createElement(material_ui_2.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
114-
React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this, currentTask)})
115-
: React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
116-
: null, React.createElement(material_ui_2.ToolbarGroup, {float: 'right'}, allComplete ?
117-
React.createElement(material_ui_2.RaisedButton, {label: 'Continue', primary: true, onClick: this.props.callNextPage})
118-
:
119-
React.createElement(material_ui_2.RaisedButton, {label: 'Run', secondary: true, onClick: this.props.callRunTests}))))));
97+
return (React.createElement(material_ui_2.Paper, {style: style, zDepth: 1, className: 'cr-page'},
98+
React.createElement(content_1.default, {page: page}),
99+
React.createElement(material_ui_1.Divider, null),
100+
React.createElement(material_ui_1.List, {subheader: 'Tasks', className: 'cr-tasks', ref: 'tasks'},
101+
tasks.map(function (task, index) {
102+
var isCurrentTask = index === taskPosition;
103+
var isDisabledTask = index > taskPosition;
104+
var isCompletedTask = index < taskPosition;
105+
var isFinalTask = index >= tasks.length - 1;
106+
return (React.createElement("div", null,
107+
React.createElement(material_ui_1.ListItem, {ref: 'task' + index, className: classnames({
108+
'cr-task': true,
109+
'isCompletedTask': isCompletedTask,
110+
'isCurrentTask': isCurrentTask,
111+
'isDisabledTask': isDisabledTask
112+
})},
113+
React.createElement(TaskCheckbox, {index: index, taskPosition: taskPosition, runTests: _this.props.runTests}),
114+
React.createElement("span", {className: 'cr-task-index'},
115+
index + 1,
116+
"."),
117+
React.createElement("div", {className: 'cr-task-description'},
118+
React.createElement(_components_1.MarkdownText, {text: task.description})
119+
))
120+
));
121+
}),
122+
React.createElement(hint_1.TaskHints, {task: currentTask, hintPosition: hintPosition}),
123+
page.completed && !!page.onPageComplete ? React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', ref: 'onPageComplete'},
124+
React.createElement("div", {className: 'cr-task-onComplete-description'},
125+
React.createElement(_components_1.MarkdownText, {text: page.onPageComplete})
126+
)
127+
) : null,
128+
React.createElement("div", {ref: 'listEnd'})),
129+
React.createElement("section", {className: 'cr-page-toolbar'},
130+
React.createElement(material_ui_2.LinearProgress, {mode: 'determinate', value: taskProgress(taskPosition, tasks.length), style: { height: '6px' }}),
131+
React.createElement(material_ui_2.Toolbar, null,
132+
currentTask && currentTask.hints && currentTask.hints.length ?
133+
React.createElement(material_ui_2.ToolbarGroup, {float: 'left'}, hintPosition <= currentTask.hints.length - 2 ?
134+
React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint', icon: React.createElement(InfoOutline, null), onClick: this.displayHint.bind(this, currentTask)})
135+
: React.createElement(material_ui_2.FlatButton, {className: 'cr-task-showHint-disabled', icon: React.createElement(Info, null), disabled: true}))
136+
: null,
137+
React.createElement(material_ui_2.ToolbarGroup, {float: 'right'}, allComplete ?
138+
React.createElement(material_ui_2.RaisedButton, {label: 'Continue', primary: true, onClick: this.props.callNextPage})
139+
:
140+
React.createElement(material_ui_2.RaisedButton, {label: 'Run', secondary: true, onClick: this.props.callRunTests}))))));
120141
};
121142
default_1 = __decorate([
122143
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: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,18 @@ var default_1 = (function (_super) {
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: this.displayHint.bind(this)})
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) {

0 commit comments

Comments
 (0)