make users available in member by requesting them from client right before

before this was already foreseen, but memberDict wasn't being refreshed
as it's only used in roomMembers(), I got rid of memberDict as well
pull/21833/head
Bruno Windels 2018-09-07 23:44:20 +02:00
parent 7fe822ca17
commit 0cd222ef0b
1 changed files with 6 additions and 10 deletions

View File

@ -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'