var CourseStore, CurrentUserStore, Invalid, NoPeriods, React;
React = require('react');
CurrentUserStore = require('../flux/current-user').CurrentUserStore;
Invalid = require('../components').Invalid;
NoPeriods = require('../components/no-periods');
CourseStore = require('../flux/course').CourseStore;
module.exports = function(component, options) {
var RouteHandler;
Iif (options == null) {
options = {};
}
RouteHandler = function() {};
RouteHandler.contextTypes = {
router: React.PropTypes.func
};
RouteHandler.prototype.render = function() {
var course, courseId;
courseId = this.context.router.getCurrentParams().courseId;
course = CourseStore.get(courseId);
return React.createElement(options.requireRole && courseId && options.requireRole !== CurrentUserStore.getCourseRole(courseId) ? Invalid : options.requirePeriods && course.periods.length === 0 ? NoPeriods : component);
};
return RouteHandler;
};
|