Files
old-csveditor/app/App.js

56 lines
1.2 KiB
JavaScript
Raw Normal View History

2014-08-20 19:50:48 +02:00
/** @jsx React.DOM */
2014-10-27 15:28:16 +01:00
var React = require('react');
var Store = require('./Store.js');
var actions = require('./actions.js');
2014-08-20 19:50:48 +02:00
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 (
<div>{message}</div>
);
},
2014-08-20 19:50:48 +02:00
render: function() {
return (
<div>
{this.state.messages.map(this.renderMessages)}
<form onSubmit={this.addMessage}>
<input ref="newMessage" type="text" value={this.state.newMessage} onChange={this.updateNewMessage}/>
</form>
</div>
2014-08-20 19:50:48 +02:00
);
}
2014-08-20 19:50:48 +02:00
});
module.exports = App;