Only set selected tags state when updating rooms

instead of every time we get an update from a GroupStore/otherwise.

This was leading to many setStates and renders at startup when we
receive many group /members /rooms etc. responses.

Also, use the rate limited version of refreshRoomList.
This commit is contained in:
lukebarnard 2018-01-15 14:42:41 +00:00
parent 952f2c6a21
commit 408f13f68c

View file

@ -324,12 +324,7 @@ module.exports = React.createClass({
// Show all rooms
this._visibleRooms = MatrixClientPeg.get().getRooms();
}
this.setState({
selectedTags,
}, () => {
this.refreshRoomList();
});
this._delayedRefreshRoomList();
},
refreshRoomList: function() {
@ -345,6 +340,9 @@ module.exports = React.createClass({
this.setState({
lists: this.getRoomLists(),
totalRoomCount: totalRooms,
// Do this here so as to not render every time the selected tags
// themselves change.
selectedTags: TagOrderStore.getSelectedTags(),
});
// this._lastRefreshRoomListTs = Date.now();