27 lines
963 B
Plaintext
27 lines
963 B
Plaintext
var <%= name %> = React.createClass({
|
|
mixins: [React.addons.LinkedStateMixin],
|
|
getInitialState: function () {
|
|
return {edited: '', todos: [], counter: 0};
|
|
},
|
|
add: function () {
|
|
if (this.state.edited.trim().length === 0) {
|
|
return;
|
|
}
|
|
var newTodo = {value: this.state.edited, done: false, key: this.state.counter};
|
|
this.setState({todos: this.state.todos.concat(newTodo), edited: '', counter: this.state.counter + 1});
|
|
},
|
|
remove: function (todo) {
|
|
this.setState({todos: _.reject(this.state.todos, todo)});
|
|
},
|
|
toggleChecked: function (index) {
|
|
var todos = _.cloneDeep(this.state.todos);
|
|
todos[index].done = !todos[index].done;
|
|
this.setState({todos: todos});
|
|
},
|
|
clearDone: function () {
|
|
this.setState({todos: _.filter(this.state.todos, {done: false})});
|
|
},
|
|
render: function () {
|
|
return <%= name %>RT.apply(this);
|
|
}
|
|
}); |