From b7699c0544f7bff4e1834733bf70011e80193e3a Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Thu, 10 Dec 2015 21:53:14 +0000 Subject: [PATCH] Save scroll state when swapping to non-room pages too --- src/components/structures/MatrixChat.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index f8f7252822..e290843ed4 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -254,21 +254,15 @@ module.exports = React.createClass({ }); break; case 'view_user_settings': - this.setState({ - page_type: this.PageTypes.UserSettings, - }); + this._setPage(this.PageTypes.UserSettings); this.notifyNewScreen('settings'); break; case 'view_create_room': - this.setState({ - page_type: this.PageTypes.CreateRoom, - }); + this._setPage(this.PageTypes.CreateRoom); this.notifyNewScreen('new'); break; case 'view_room_directory': - this.setState({ - page_type: this.PageTypes.RoomDirectory, - }); + this._setPage(this.PageTypes.RoomDirectory); this.notifyNewScreen('directory'); break; case 'notifier_enabled': @@ -297,6 +291,15 @@ module.exports = React.createClass({ } }, + _setPage: function(pageType) { + // record the scroll state if we're in a room view. + this._updateScrollMap(); + + this.setState({ + page_type: this.PageTypes.RoomDirectory, + }); + }, + _viewRoom: function(roomId) { // before we switch room, record the scroll state of the current room this._updateScrollMap();