diff --git a/src/components/structures/MessagePanel.js b/src/components/structures/MessagePanel.js
index 7e3a5941ef..1107be8464 100644
--- a/src/components/structures/MessagePanel.js
+++ b/src/components/structures/MessagePanel.js
@@ -631,6 +631,13 @@ module.exports = React.createClass({
}
},
+ _scrollDownIfAtBottom: function() {
+ const scrollPanel = this.refs.scrollPanel;
+ if (scrollPanel) {
+ scrollPanel.checkScroll();
+ }
+ },
+
onResize: function() {
dis.dispatch({ action: 'timeline_resize' }, true);
},
@@ -667,7 +674,7 @@ module.exports = React.createClass({
stickyBottom={this.props.stickyBottom}>
{ topSpinner }
{ this._getEventTiles() }
-
+
{ bottomSpinner }
);
diff --git a/src/components/views/rooms/WhoIsTypingTile.js b/src/components/views/rooms/WhoIsTypingTile.js
index 80ac64ec3e..ee383575c4 100644
--- a/src/components/views/rooms/WhoIsTypingTile.js
+++ b/src/components/views/rooms/WhoIsTypingTile.js
@@ -29,7 +29,7 @@ module.exports = React.createClass({
propTypes: {
// the room this statusbar is representing.
room: PropTypes.object.isRequired,
-
+ onVisible: PropTypes.func,
// Number of names to display in typing indication. E.g. set to 3, will
// result in "X, Y, Z and 100 others are typing."
whoIsTypingLimit: PropTypes.number,
@@ -51,6 +51,15 @@ module.exports = React.createClass({
MatrixClientPeg.get().on("RoomMember.typing", this.onRoomMemberTyping);
},
+ componentDidUpdate: function(_, prevState) {
+ if (this.props.onVisible &&
+ !prevState.usersTyping.length &&
+ this.state.usersTyping.length)
+ {
+ this.props.onVisible();
+ }
+ },
+
componentWillUnmount: function() {
// we may have entirely lost our client as we're logging out before clicking login on the guest bar...
const client = MatrixClientPeg.get();