diff --git a/src/components/views/groups/GroupMemberList.js b/src/components/views/groups/GroupMemberList.js index 6a257259f9..00d84ad1fc 100644 --- a/src/components/views/groups/GroupMemberList.js +++ b/src/components/views/groups/GroupMemberList.js @@ -36,6 +36,7 @@ export default withMatrixClient(React.createClass({ return { fetching: false, members: null, + invited_members: null, truncateAt: INITIAL_LOAD_NUM_MEMBERS, }; }, @@ -58,6 +59,18 @@ export default withMatrixClient(React.createClass({ this.setState({fetching: false}); console.error("Failed to get group member list: " + e); }); + + this.props.matrixClient.getGroupInvitedUsers(this.props.groupId).then((result) => { + this.setState({ + invited_members: result.chunk.map((apiMember) => { + return groupMemberFromApiObject(apiMember); + }), + fetching: false, + }); + }).catch((e) => { + this.setState({fetching: false}); + console.error("Failed to get group invited member list: " + e); + }); }, _createOverflowTile: function(overflowCount, totalCount) { @@ -83,11 +96,9 @@ export default withMatrixClient(React.createClass({ this.setState({ searchQuery: ev.target.value }); }, - makeGroupMemberTiles: function(query) { + makeGroupMemberTiles: function(query, memberList) { const GroupMemberTile = sdk.getComponent("groups.GroupMemberTile"); query = (query || "").toLowerCase(); - - let memberList = this.state.members; if (query) { memberList = memberList.filter((m) => { const matchesName = m.displayname.toLowerCase().indexOf(query) !== -1; @@ -143,11 +154,22 @@ export default withMatrixClient(React.createClass({ return (
{ inputBox } - - - { this.makeGroupMemberTiles(this.state.searchQuery) } - + +
+ + { this.makeGroupMemberTiles(this.state.searchQuery, this.state.members) } + +
+
+

{ _t("Invited") }

+
+ + { this.makeGroupMemberTiles(this.state.searchQuery, this.state.invited_members) } + +
+
);