client/src/components/NoteInput.js
changeset 1 431977d7c9a6
child 2 b52921a63e77
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/NoteInput.js	Mon May 22 14:34:35 2017 +0200
@@ -0,0 +1,50 @@
+import React, {Component} from 'react';
+
+import PropTypes from 'prop-types';
+
+class NoteInput extends Component {
+  constructor(props) {
+    super(props);
+
+    this.state = {value: ''};
+
+    this.onAddNoteClick = this.onAddNoteClick.bind(this);
+    this.handleChange = this.handleChange.bind(this);
+  }
+
+  handleChange(event) {
+    this.setState({value : event.target.value});
+  }
+
+  onAddNoteClick(event) {
+    this.props.addNote(this.state.value);
+
+    this.noteInput.value = "";
+
+    this.noteInput.focus();
+  }
+
+  componentDidMount() {
+    this.noteInput.focus();
+  }
+
+  render() {
+    return (
+      <div>
+        <textarea
+          id="noteText"
+          onChange={this.handleChange}
+          placeholder="note"
+          ref={(input) => { this.noteInput = input; }}
+        />
+        <button onClick={this.onAddNoteClick}>Add Note</button>
+      </div>
+    );
+  }
+}
+
+NoteInput.propTypes = {
+  addNote: PropTypes.func.isRequired
+};
+
+export default NoteInput;