diff --git a/src/components/views/rooms/MemberList.js b/src/components/views/rooms/MemberList.js index 5718276768..1e7bf6d1b2 100644 --- a/src/components/views/rooms/MemberList.js +++ b/src/components/views/rooms/MemberList.js @@ -392,33 +392,20 @@ module.exports = React.createClass({ } }, - _makeMemberTiles: function(members, membership) { + _makeMemberTiles: function(members) { const MemberTile = sdk.getComponent("rooms.MemberTile"); + const EntityTile = sdk.getComponent("rooms.EntityTile"); - const memberList = members.map((m) => { - return ( - - ); + return members.map((m) => { + if (m.userId) { + // Is a Matrix invite + return ; + } else { + // Is a 3pid invite + return this._onPending3pidInviteClick(m)} />; + } }); - - // XXX: surely this is not the right home for this logic. - // Double XXX: Now it's really, really not the right home for this logic: - // we shouldn't even be passing in the 'membership' param to this function. - // Ew, ew, and ew. - // Triple XXX: This violates the size constraint, the output is expected/desired - // to be the same length as the members input array. - if (membership === "invite") { - const EntityTile = sdk.getComponent("rooms.EntityTile"); - memberList.push(...this._getPending3PidInvites().map((e) => { - return this._onPending3pidInviteClick(e)} - />; - })); - } - - return memberList; }, _getChildrenJoined: function(start, end) { @@ -430,7 +417,12 @@ module.exports = React.createClass({ }, _getChildrenInvited: function(start, end) { - return this._makeMemberTiles(this.state.filteredInvitedMembers.slice(start, end), 'invite'); + let targets = this.state.filteredInvitedMembers; + if (end > this.state.filteredInvitedMembers.length) { + targets = targets.concat(this._getPending3PidInvites()); + } + + return this._makeMemberTiles(targets.slice(start, end)); }, _getChildCountInvited: function() {