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 wellpull/21833/head
parent
7fe822ca17
commit
0cd222ef0b
|
@ -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'
|
||||
|
|
Loading…
Reference in New Issue