| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112 | 2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
2×
| var ChapterSectionMixin, CrumbMixin, LoadableItem, React, Review, ReviewShell, ReviewTracker, ScrollListenerMixin, ScrollTracker, ScrollTrackerParentMixin, TaskTeacherReviewActions, TaskTeacherReviewExercise, TaskTeacherReviewStore, _, ref, ref1;
React = require('react');
_ = require('underscore');
TaskTeacherReviewExercise = require('./exercise');
ref = require('../scroll-tracker'), ScrollTracker = ref.ScrollTracker, ScrollTrackerParentMixin = ref.ScrollTrackerParentMixin;
LoadableItem = require('../loadable-item');
CrumbMixin = require('./crumb-mixin');
ChapterSectionMixin = require('openstax-react-components').ChapterSectionMixin;
ScrollListenerMixin = require('react-scroll-components').ScrollListenerMixin;
ref1 = require('../../flux/task-teacher-review'), TaskTeacherReviewActions = ref1.TaskTeacherReviewActions, TaskTeacherReviewStore = ref1.TaskTeacherReviewStore;
ReviewTracker = React.createClass({
displayName: 'ReviewTracker',
mixins: [ScrollTracker],
renderQuestion: function() {
return React.createElement(TaskTeacherReviewExercise, React.__spread({}, this.props));
},
renderHeading: function() {
var ref2, sectionLabel, title;
ref2 = this.props, sectionLabel = ref2.sectionLabel, title = ref2.title;
return React.createElement("h2", null, React.createElement("span", {
"className": 'text-success'
}, sectionLabel), " ", title);
},
render: function() {
var content, renderFn;
content = this.props.content;
renderFn = 'renderQuestion';
if (content == null) {
renderFn = 'renderHeading';
}
return this[renderFn]();
}
});
Review = React.createClass({
displayName: 'Review',
mixins: [ChapterSectionMixin, CrumbMixin, ScrollListenerMixin, ScrollTrackerParentMixin],
propTypes: {
id: React.PropTypes.string.isRequired,
focus: React.PropTypes.bool.isRequired,
period: React.PropTypes.object.isRequired,
currentStep: React.PropTypes.number
},
getDefaultProps: function() {
return {
focus: false
};
},
render: function() {
var focus, id, ref2, steps, stepsList, stepsProps;
ref2 = this.props, id = ref2.id, focus = ref2.focus;
steps = this.getContents();
stepsProps = _.omit(this.props, 'focus');
stepsList = _.map(steps, (function(_this) {
return function(step, index) {
var item, scrollState, stepProps;
scrollState = _.pick(step, 'key', 'sectionLabel');
if (step.content != null) {
stepProps = _.extend({}, stepsProps, step);
stepProps.key = "task-review-question-" + step.content.questions[0].id + "-" + index;
stepProps.focus = focus && index === 0;
} else {
stepProps = step;
stepProps.key = "task-review-heading-" + step.sectionLabel;
}
return item = React.createElement(ReviewTracker, React.__spread({}, stepProps, {
"scrollState": scrollState,
"setScrollPoint": _this.setScrollPoint,
"unsetScrollPoint": _this.unsetScrollPoint
}));
};
})(this));
return React.createElement("div", null, stepsList);
}
});
ReviewShell = React.createClass({displayName: "ReviewShell",
render: function() {
var id;
id = this.props.id;
return React.createElement(LoadableItem, {
"id": id,
"store": TaskTeacherReviewStore,
"actions": TaskTeacherReviewActions,
"renderItem": ((function(_this) {
return function() {
return React.createElement(Review, React.__spread({}, _this.props, {
"review": 'teacher',
"panel": 'teacher-review'
}));
};
})(this))
});
}
});
module.exports = {
Review: Review,
ReviewShell: ReviewShell
};
|