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 }
;
},