Focus the text box at appropriate times
This commit is contained in:
parent
90f6764cbf
commit
b31794cda5
|
@ -2,7 +2,25 @@ var React = require('react');
|
||||||
|
|
||||||
var MatrixClientPeg = require("../MatrixClientPeg");
|
var MatrixClientPeg = require("../MatrixClientPeg");
|
||||||
|
|
||||||
|
var dis = require("../dispatcher");
|
||||||
|
|
||||||
module.exports = React.createClass({
|
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) {
|
onKeyDown: function (ev) {
|
||||||
if (ev.keyCode == 13) {
|
if (ev.keyCode == 13) {
|
||||||
var contentText = this.refs.textarea.getDOMNode().value;
|
var contentText = this.refs.textarea.getDOMNode().value;
|
||||||
|
|
|
@ -27,12 +27,20 @@ module.exports = React.createClass({
|
||||||
if (this.state.logged_in) {
|
if (this.state.logged_in) {
|
||||||
this.startMatrixClient();
|
this.startMatrixClient();
|
||||||
}
|
}
|
||||||
|
this.focusComposer = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
componentWillUnmount: function() {
|
componentWillUnmount: function() {
|
||||||
dis.unregister(this.dispatcherRef);
|
dis.unregister(this.dispatcherRef);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
componentDidUpdate: function() {
|
||||||
|
if (this.focusComposer) {
|
||||||
|
dis.dispatch({action: 'focus_composer'});
|
||||||
|
this.focusComposer = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
onAction: function(payload) {
|
onAction: function(payload) {
|
||||||
switch (payload.action) {
|
switch (payload.action) {
|
||||||
case 'logout':
|
case 'logout':
|
||||||
|
@ -47,6 +55,7 @@ module.exports = React.createClass({
|
||||||
this.setState({
|
this.setState({
|
||||||
currentRoom: payload.room_id
|
currentRoom: payload.room_id
|
||||||
});
|
});
|
||||||
|
this.focusComposer = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -65,6 +74,7 @@ module.exports = React.createClass({
|
||||||
firstRoom = cli.getRooms()[0].roomId;
|
firstRoom = cli.getRooms()[0].roomId;
|
||||||
}
|
}
|
||||||
that.setState({ready: true, currentRoom: firstRoom});
|
that.setState({ready: true, currentRoom: firstRoom});
|
||||||
|
dis.dispatch({action: 'focus_composer'});
|
||||||
});
|
});
|
||||||
cli.startClient();
|
cli.startClient();
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue