/** @jsx React.DOM */ var React = require('react'); var Store = require('./Store.js'); var actions = require('./actions.js'); var App = React.createClass({ getInitialState: function () { return { messages: Store.getMessages(), newMessage: '' }; }, componentWillMount: function () { Store.addChangeListener(this.changeState); }, componentWillUnmount: function () { Store.removeChangeListener(this.changeState); }, changeState: function () { this.setState({ messages: Store.getMessages() }); }, addMessage: function (event) { event.preventDefault(); var input = this.refs.newMessage.getDOMNode(); actions.addMessage(input.value); this.setState({ newMessage: '' }); }, updateNewMessage: function (event) { this.setState({ newMessage: event.target.value }); }, renderMessages: function (message) { return (
{message}
); }, render: function() { return (
{this.state.messages.map(this.renderMessages)}
); } }); module.exports = App;