// Task component: represents a single todo item. Task = React.createClass({ propTypes: { // We can use propTypes to indicate it is required. task: React.PropTypes.object.isRequired, showPrivateButton: React.PropTypes.bool.isRequired }, toggleChecked() { // Set the checked property to the opposite of its current value. Meteor.call("setChecked", this.props.task._id, ! this.props.task.checked); }, deleteThisTask() { Meteor.call("removeTask", this.props.task._id); }, togglePrivate() { Meteor._debug('Toggling private on task', this.props.task._id); Meteor.call("setPrivate", this.props.task._id, ! this.props.task.private); }, render() { // Give tasks a different clasSName when they are checked off, // so that we can style them nicely in CSS. const taskClassName = (this.props.task.checked ? 'checked' : '') + " " + (this.props.task.private ? "private" : ""); let result = (
  • { this.props.showPrivateButton ? ( ) : '' } {this.props.task.username}: {this.props.task.text}
  • ); return result; } });