From e80cf8a1336a2df20bcae25bbf5b17331432c2bf Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Wed, 22 Jul 2015 11:12:45 +0100 Subject: [PATCH 1/3] Bugfix: Scroll to the bottom more reliably on new incoming messages. Added some padding to the calculation which means the scrollbar can be scrolled up a bit and still get bumped down. Scroll a lot though and it will not keep bumping you down (parity with Angular) --- src/controllers/organisms/RoomView.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/controllers/organisms/RoomView.js b/src/controllers/organisms/RoomView.js index c6a0735bc8..7c3a3d0ad9 100644 --- a/src/controllers/organisms/RoomView.js +++ b/src/controllers/organisms/RoomView.js @@ -114,7 +114,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) From 7e420729522f0f09651d107ff988210918a39195 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Wed, 22 Jul 2015 13:04:18 +0100 Subject: [PATCH 2/3] Scroll to bottom when there are live call updates. This keeps the latest messages visible when you place or receive a call. --- src/controllers/organisms/RoomView.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/controllers/organisms/RoomView.js b/src/controllers/organisms/RoomView.js index 7c3a3d0ad9..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; } }, From d4147c1315517c54cef3c6fceb093f100863b40d Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Wed, 22 Jul 2015 13:15:12 +0100 Subject: [PATCH 3/3] Don't allow blank messages to be sent. --- src/controllers/molecules/MessageComposer.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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) {