Focus the text box at appropriate times

pull/1/head
David Baker 2015-06-18 15:03:57 +01:00
parent 90f6764cbf
commit b31794cda5
2 changed files with 28 additions and 0 deletions

View File

@ -2,7 +2,25 @@ var React = require('react');
var MatrixClientPeg = require("../MatrixClientPeg");
var dis = require("../dispatcher");
module.exports = React.createClass({
componentDidMount: function() {
this.dispatcherRef = dis.register(this.onAction);
},
componentWillUnmount: function() {
dis.unregister(this.dispatcherRef);
},
onAction: function(payload) {
switch (payload.action) {
case 'focus_composer':
this.refs.textarea.getDOMNode().focus();
break;
}
},
onKeyDown: function (ev) {
if (ev.keyCode == 13) {
var contentText = this.refs.textarea.getDOMNode().value;

View File

@ -27,12 +27,20 @@ module.exports = React.createClass({
if (this.state.logged_in) {
this.startMatrixClient();
}
this.focusComposer = false;
},
componentWillUnmount: function() {
dis.unregister(this.dispatcherRef);
},
componentDidUpdate: function() {
if (this.focusComposer) {
dis.dispatch({action: 'focus_composer'});
this.focusComposer = false;
}
},
onAction: function(payload) {
switch (payload.action) {
case 'logout':
@ -47,6 +55,7 @@ module.exports = React.createClass({
this.setState({
currentRoom: payload.room_id
});
this.focusComposer = true;
break;
}
},
@ -65,6 +74,7 @@ module.exports = React.createClass({
firstRoom = cli.getRooms()[0].roomId;
}
that.setState({ready: true, currentRoom: firstRoom});
dis.dispatch({action: 'focus_composer'});
});
cli.startClient();
},