UNPKG

fluxcapacitor

Version:

A bunch of tools to implement apps the Flux way

63 lines (52 loc) 1.55 kB
/** * Copyright (c) 2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ var React = require('react'); var ReactPropTypes = React.PropTypes; var TodoActions = require('../actions/TodoActions'); var TodoItem = require('./TodoItem.react'); var MainSection = React.createClass({ propTypes: { allTodos: ReactPropTypes.object.isRequired, areAllComplete: ReactPropTypes.bool.isRequired }, /** * @return {object} */ render: function() { // This section should be hidden by default // and shown when there are todos. if (Object.keys(this.props.allTodos).length < 1) { return null; } var allTodos = this.props.allTodos; var todos = []; for (var key in allTodos) { todos.push(<TodoItem key={key} todo={allTodos[key]} />); } return ( <section id="main"> <input id="toggle-all" type="checkbox" onChange={this._onToggleCompleteAll} checked={this.props.areAllComplete ? 'checked' : ''} /> <label htmlFor="toggle-all">Mark all as complete</label> <ul id="todo-list">{todos}</ul> </section> ); }, /** * Event handler to mark all TODOs as complete */ _onToggleCompleteAll: function() { TodoActions.toggleCompleteAll(); } }); module.exports = MainSection;