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