diff --git a/src/controllers/molecules/MessageComposer.js b/src/controllers/molecules/MessageComposer.js index c73e9f25cf..74e47fcd8b 100644 --- a/src/controllers/molecules/MessageComposer.js +++ b/src/controllers/molecules/MessageComposer.js @@ -153,7 +153,12 @@ module.exports = { onKeyDown: function (ev) { if (ev.keyCode === KeyCode.ENTER) { - this.sentHistory.push(this.refs.textarea.getDOMNode().value); + var input = this.refs.textarea.getDOMNode().value; + if (input.length === 0) { + ev.preventDefault(); + return; + } + this.sentHistory.push(input); this.onEnter(ev); } else if (ev.keyCode === KeyCode.TAB) { diff --git a/src/controllers/organisms/RoomView.js b/src/controllers/organisms/RoomView.js index c6a0735bc8..dca3881c0e 100644 --- a/src/controllers/organisms/RoomView.js +++ b/src/controllers/organisms/RoomView.js @@ -89,6 +89,17 @@ module.exports = { case 'notifier_enabled': this.forceUpdate(); break; + case 'call_state': + if (this.props.roomId !== payload.room_id) { + break; + } + // scroll to bottom + var messageWrapper = this.refs.messageWrapper; + if (messageWrapper) { + messageWrapper = messageWrapper.getDOMNode(); + messageWrapper.scrollTop = messageWrapper.scrollHeight; + } + break; } }, @@ -114,7 +125,10 @@ module.exports = { if (this.refs.messageWrapper) { var messageWrapper = this.refs.messageWrapper.getDOMNode(); - this.atBottom = messageWrapper.scrollHeight - messageWrapper.scrollTop <= messageWrapper.clientHeight; + this.atBottom = ( + messageWrapper.scrollHeight - messageWrapper.scrollTop <= + (messageWrapper.clientHeight + 150) + ); } this.setState({ room: MatrixClientPeg.get().getRoom(this.props.roomId)