diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index 6ef448f0fd..87758fa922 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -32,7 +32,6 @@ module.exports = React.createClass({ displayName: 'MemberList', getInitialState: function() { - this.memberDict = this.getMemberDict(); this._mounted = false; const cli = MatrixClientPeg.get(); @@ -196,8 +195,6 @@ module.exports = React.createClass({ _updateList: new rate_limited_func(function() { // console.log("Updating memberlist"); - this.memberDict = this.getMemberDict(); - const newState = { members: this.roomMembers(), }; @@ -206,15 +203,15 @@ module.exports = React.createClass({ this.setState(newState); }, 500), - getMemberDict: function() { - if (!this.props.roomId) return {}; + getMembersWithUser: function() { + if (!this.props.roomId) return []; const cli = MatrixClientPeg.get(); const room = cli.getRoom(this.props.roomId); if (!room) return {}; - const all_members = room.currentState.members; + const allMembers = Object.values(room.currentState.members); - Object.values(all_members).forEach(function(member) { + allMembers.forEach(function(member) { // work around a race where you might have a room member object // before the user object exists. This may or may not cause // https://github.com/vector-im/vector-web/issues/186 @@ -226,14 +223,13 @@ module.exports = React.createClass({ // the right solution here is to fix the race rather than leave it as 0 }); - return all_members; + return allMembers; }, roomMembers: function() { const ConferenceHandler = CallHandler.getConferenceHandler(); - const allMembersDict = this.memberDict || {}; - const allMembers = Object.values(allMembersDict); + const allMembers = this.getMembersWithUser(); const filteredAndSortedMembers = allMembers.filter((m) => { return ( m.membership === 'join' || m.membership === 'invite'