var Exercise, ExerciseCard, ExerciseStore, React, String, _, classnames;
_ = require('underscore');
React = require('react');
classnames = require('classnames');
ExerciseStore = require('../../flux/exercise').ExerciseStore;
String = require('../../helpers/string');
ExerciseCard = require('../exercise-card');
Exercise = React.createClass({displayName: "Exercise",
propTypes: {
exercise: React.PropTypes.object.isRequired,
ignoredPoolTypes: React.PropTypes.object.isRequired
},
renderHeader: function() {
var className, pool;
return React.createElement("div", {
"className": 'pools'
}, (function() {
var i, len, ref, results;
ref = ExerciseStore.poolTypes(this.props.exercise);
results = [];
for (i = 0, len = ref.length; i < len; i++) {
pool = ref[i];
className = classnames(pool, {
'is-ignored': this.props.ignoredPoolTypes[pool]
});
results.push(React.createElement("span", {
"key": pool,
"className": className
}, String.titleize(pool)));
}
return results;
}).call(this));
},
render: function() {
var editUrl;
if (_.every(ExerciseStore.poolTypes(this.props.exercise), (function(_this) {
return function(pt) {
return _this.props.ignoredPoolTypes[pt];
};
})(this))) {
return null;
}
editUrl = this.props.exercise.url.replace(/@\d+/, '@draft');
return React.createElement(ExerciseCard, React.__spread({}, this.props, {
"header": this.renderHeader(),
"displayAllTags": true,
"displayFeedback": true
}), React.createElement("a", {
"target": "_blank",
"className": "edit-link",
"href": editUrl
}, "edit"));
}
});
module.exports = Exercise;
|