diff --git a/src/components/views/groups/GroupMemberList.js b/src/components/views/groups/GroupMemberList.js index 511af37166..a5ab22eb0e 100644 --- a/src/components/views/groups/GroupMemberList.js +++ b/src/components/views/groups/GroupMemberList.js @@ -59,6 +59,7 @@ export default withMatrixClient(React.createClass({ }, _fetchMembers: function() { + if (this._unmounted) return; this.setState({ members: this._groupStore.getGroupMembers(), invitedMembers: this._groupStore.getGroupInvitedMembers(), @@ -105,12 +106,11 @@ export default withMatrixClient(React.createClass({ }); } - memberList = memberList.map((m) => { - return ( - - ); + const uniqueMembers = {}; + memberList.forEach((m) => { + if (!uniqueMembers[m.userId]) uniqueMembers[m.userId] = m; }); - + memberList = Object.keys(uniqueMembers).map((userId) => uniqueMembers[userId]); memberList.sort((a, b) => { // TODO: should put admins at the top: we don't yet have that info if (a < b) { @@ -122,10 +122,16 @@ export default withMatrixClient(React.createClass({ } }); + const memberTiles = memberList.map((m) => { + return ( + + ); + }); + return - { memberList } + { memberTiles } ; },