Skip to content

Commit 1ad9eb8

Browse files
committed
add onPageComplete message
1 parent 55328f4 commit 1ad9eb8

File tree

7 files changed

+62
-60
lines changed

7 files changed

+62
-60
lines changed

lib/components/page/page.js

Lines changed: 47 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ var default_1 = (function (_super) {
5757
else if (this.state.hintPos > -1) {
5858
ReactDOM.findDOMNode(this.refs['hint' + this.state.hintPos]).scrollIntoView();
5959
}
60+
else if (this.props.page.completed && this.props.page.onPageComplete) {
61+
ReactDOM.findDOMNode(this.refs.onPageComplete).scrollIntoView();
62+
}
6063
};
6164
default_1.prototype.visibleTasks = function () {
6265
return this.props.tasks.slice(0, this.props.taskPosition + 1);
@@ -95,53 +98,55 @@ var default_1 = (function (_super) {
9598
var taskPosition = this.props.taskPosition;
9699
var currentTask = taskPosition <= tasks.length ? tasks[taskPosition] : null;
97100
var allComplete = taskPosition >= tasks.length;
101+
console.log(page);
98102
return (React.createElement(material_ui_1.Paper, {style: style, zDepth: 1, className: 'cr-page'},
99103
React.createElement(material_ui_1.Card, null,
100-
React.createElement(material_ui_1.CardHeader, {title: page.title, subtitle: page.description}),
104+
React.createElement(material_ui_1.CardHeader, {title: page.title}),
101105
React.createElement(material_ui_1.CardText, null,
102-
React.createElement(_components_1.MarkdownText, {text: page.explanation})
106+
React.createElement(_components_1.MarkdownText, {text: page.description})
103107
)),
104108
React.createElement(material_ui_1.Divider, null),
105-
React.createElement(material_ui_1.List, {subheader: 'Tasks', className: 'cr-tasks', ref: 'tasks'}, tasks.map(function (task, index) {
106-
var isCurrentTask = index === taskPosition;
107-
var isDisabledTask = index > taskPosition;
108-
var isCompletedTask = index < taskPosition;
109-
var isFinalTask = index >= tasks.length - 1;
110-
var hints = _this.hintsShown(task);
111-
return (React.createElement("div", null,
112-
React.createElement(material_ui_1.ListItem, {ref: 'task' + index, className: classnames({
113-
'cr-task': true,
114-
'isCompletedTask': isCompletedTask,
115-
'isCurrentTask': isCurrentTask,
116-
'isDisabledTask': isDisabledTask
117-
})},
118-
React.createElement("span", {className: 'cr-task-checkbox'}, _this.getIcon(index, taskPosition)),
119-
React.createElement("span", {className: 'cr-task-index'},
120-
index + 1,
121-
"."),
122-
React.createElement("div", {className: 'cr-task-description'},
123-
React.createElement(_components_1.MarkdownText, {text: task.description})
124-
)),
125-
isCurrentTask && hints ?
126-
hints.map(function (hint, indexHint) {
127-
return React.createElement(material_ui_1.ListItem, {className: 'cr-task-hint', ref: 'hint' + indexHint},
128-
React.createElement("div", {class: 'cr-task-hint-box'},
129-
React.createElement("span", {className: 'cr-task-hint-index'},
130-
indexHint + 1,
131-
"."),
132-
React.createElement("div", {className: 'cr-task-hint-description'},
133-
React.createElement(_components_1.MarkdownText, {text: hint})
134-
))
135-
);
136-
})
137-
: null,
138-
isFinalTask ? null : React.createElement(material_ui_1.Divider, null),
139-
page.completed && page.onComplete ? React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', ref: 'onComplete'},
140-
React.createElement("div", {className: 'cr-task-onComplete-description'},
141-
React.createElement(_components_1.MarkdownText, {text: page.onComplete})
142-
)
143-
) : null));
144-
})),
109+
React.createElement(material_ui_1.List, {subheader: 'Tasks', className: 'cr-tasks', ref: 'tasks'},
110+
tasks.map(function (task, index) {
111+
var isCurrentTask = index === taskPosition;
112+
var isDisabledTask = index > taskPosition;
113+
var isCompletedTask = index < taskPosition;
114+
var isFinalTask = index >= tasks.length - 1;
115+
var hints = _this.hintsShown(task);
116+
return (React.createElement("div", null,
117+
React.createElement(material_ui_1.ListItem, {ref: 'task' + index, className: classnames({
118+
'cr-task': true,
119+
'isCompletedTask': isCompletedTask,
120+
'isCurrentTask': isCurrentTask,
121+
'isDisabledTask': isDisabledTask
122+
})},
123+
React.createElement("span", {className: 'cr-task-checkbox'}, _this.getIcon(index, taskPosition)),
124+
React.createElement("span", {className: 'cr-task-index'},
125+
index + 1,
126+
"."),
127+
React.createElement("div", {className: 'cr-task-description'},
128+
React.createElement(_components_1.MarkdownText, {text: task.description})
129+
)),
130+
isCurrentTask && hints ?
131+
hints.map(function (hint, indexHint) {
132+
return React.createElement(material_ui_1.ListItem, {className: 'cr-task-hint', ref: 'hint' + indexHint},
133+
React.createElement("div", {class: 'cr-task-hint-box'},
134+
React.createElement("span", {className: 'cr-task-hint-index'},
135+
indexHint + 1,
136+
"."),
137+
React.createElement("div", {className: 'cr-task-hint-description'},
138+
React.createElement(_components_1.MarkdownText, {text: hint})
139+
))
140+
);
141+
})
142+
: null,
143+
isFinalTask ? null : React.createElement(material_ui_1.Divider, null)));
144+
}),
145+
page.completed && !!page.onPageComplete ? React.createElement(material_ui_1.ListItem, {className: 'cr-task-onComplete', ref: 'onPageComplete'},
146+
React.createElement("div", {className: 'cr-task-onComplete-description'},
147+
React.createElement(_components_1.MarkdownText, {text: page.onPageComplete})
148+
)
149+
) : null),
145150
React.createElement("section", {className: 'cr-page-toolbar'},
146151
React.createElement(material_ui_1.LinearProgress, {mode: 'determinate', value: taskProgress(taskPosition, tasks.length), style: { height: '6px' }}),
147152
React.createElement(material_ui_1.Toolbar, null,

lib/reducers/page/page.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ var Type = require('../../actions/actionTypes');
33
var defaultPage = {
44
title: '',
55
description: '',
6-
explanation: '',
76
completed: false
87
};
98
function pageReducer(page, action) {
@@ -15,8 +14,7 @@ function pageReducer(page, action) {
1514
return {
1615
title: page.title,
1716
description: page.description,
18-
explanation: page.explanation,
19-
onComplete: page.onComplete,
17+
onPageComplete: page.onPageComplete,
2018
completed: true
2119
};
2220
default:

lib/services/package.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ var PackageService = (function () {
6666
return {
6767
title: page.title,
6868
description: page.description,
69-
explanation: page.explanation,
69+
onPageComplete: page.onPageComplete,
7070
completed: page.completed || false,
7171
};
7272
};

src/components/page/page.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ componentDidUpdate() {
6060
});
6161
} else if (this.state.hintPos > -1) {
6262
ReactDOM.findDOMNode<HTMLElement>(this.refs['hint' + this.state.hintPos]).scrollIntoView();
63+
} else if (this.props.page.completed && this.props.page.onPageComplete) {
64+
ReactDOM.findDOMNode<HTMLElement>(this.refs.onPageComplete).scrollIntoView();
6365
}
6466
}
6567
visibleTasks() {
@@ -97,15 +99,14 @@ render() {
9799
var currentTask = taskPosition <= tasks.length ? tasks[taskPosition] : null;
98100
// let log = this.props.log;
99101
let allComplete = taskPosition >= tasks.length;
102+
console.log(page);
100103
return (
101104
<Paper style={style} zDepth={1} className='cr-page'>
102105
{/* Content */}
103106
<Card>
104-
105-
<CardHeader title={page.title}
106-
subtitle={page.description} />
107+
<CardHeader title={page.title} />
107108
<CardText>
108-
<MarkdownText text={page.explanation} />
109+
<MarkdownText text={page.description} />
109110
</CardText>
110111
</Card>
111112

@@ -145,14 +146,15 @@ render() {
145146
})
146147
: null}
147148
{isFinalTask ? null : <Divider />}
148-
{page.completed && page.onComplete ? <ListItem className='cr-task-onComplete' ref='onComplete'>
149-
<div className='cr-task-onComplete-description'><MarkdownText text={page.onComplete} />
150-
</div>
151-
</ListItem> : null}
152149
</div>
153150
);
154151
})
155152
}
153+
{page.completed && !!page.onPageComplete ? <ListItem className='cr-task-onComplete' ref='onPageComplete'>
154+
<div className='cr-task-onComplete-description'>
155+
<MarkdownText text={page.onPageComplete} />
156+
</div>
157+
</ListItem> : null}
156158
</List>
157159

158160
{/* Options */}

src/reducers/page/page.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import * as Type from '../../actions/actionTypes';
33
const defaultPage: CR.Page = {
44
title: '',
55
description: '',
6-
explanation: '',
76
completed: false
87
};
98

@@ -15,8 +14,7 @@ export default function pageReducer(page = defaultPage, action: CR.Action): CR.P
1514
return {
1615
title: page.title,
1716
description: page.description,
18-
explanation: page.explanation,
19-
onComplete: page.onComplete,
17+
onPageComplete: page.onPageComplete,
2018
completed: true
2119
};
2220
default:

src/services/package.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class PackageService {
6767
return {
6868
title: page.title,
6969
description: page.description,
70-
explanation: page.explanation,
70+
onPageComplete: page.onPageComplete,
7171
completed: page.completed || false,
7272
};
7373
}

src/typings/cr/cr.d.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ declare namespace CR {
1010
pages: Page[];
1111
}
1212
interface Page extends Info {
13-
explanation?: string;
1413
tasks?: Task[];
15-
onComplete?: string;
14+
onPageComplete?: string;
1615
}
1716
interface Task {
1817
description: string;

0 commit comments

Comments
 (0)