summaryrefslogtreecommitdiffstats
path: root/webapp/components/member_list_team.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/member_list_team.jsx')
-rw-r--r--webapp/components/member_list_team.jsx30
1 files changed, 17 insertions, 13 deletions
diff --git a/webapp/components/member_list_team.jsx b/webapp/components/member_list_team.jsx
index 0aa1e6e57..212536dc8 100644
--- a/webapp/components/member_list_team.jsx
+++ b/webapp/components/member_list_team.jsx
@@ -2,7 +2,7 @@
// See License.txt for license information.
import SearchableUserList from 'components/searchable_user_list/searchable_user_list_container.jsx';
-import TeamMembersDropdown from 'components/team_members_dropdown.jsx';
+import TeamMembersDropdown from 'components/team_members_dropdown';
import UserStore from 'stores/user_store.jsx';
import TeamStore from 'stores/team_store.jsx';
@@ -16,6 +16,9 @@ import * as UserAgent from 'utils/user_agent.jsx';
import React from 'react';
+import store from 'stores/redux_store.jsx';
+import {searchProfilesInCurrentTeam} from 'mattermost-redux/selectors/entities/users';
+
const USERS_PER_PAGE = 50;
export default class MemberListTeam extends React.Component {
@@ -29,6 +32,7 @@ export default class MemberListTeam extends React.Component {
this.loadComplete = this.loadComplete.bind(this);
this.searchTimeoutId = 0;
+ this.term = '';
const stats = TeamStore.getCurrentStats();
@@ -36,8 +40,6 @@ export default class MemberListTeam extends React.Component {
users: UserStore.getProfileListInTeam(),
teamMembers: Object.assign([], TeamStore.getMembersInTeam()),
total: stats.total_member_count,
- search: false,
- term: '',
loading: true
};
}
@@ -67,15 +69,15 @@ export default class MemberListTeam extends React.Component {
this.onChange(true);
}
- onChange(force) {
- if (this.state.search && !force) {
- return;
- } else if (this.state.search) {
- this.search(this.state.term);
- return;
+ onChange() {
+ let users;
+ if (this.term) {
+ users = searchProfilesInCurrentTeam(store.getState(), this.term);
+ } else {
+ users = UserStore.getProfileListInTeam();
}
- this.setState({users: UserStore.getProfileListInTeam(), teamMembers: Object.assign([], TeamStore.getMembersInTeam())});
+ this.setState({users, teamMembers: Object.assign([], TeamStore.getMembersInTeam())});
}
onStatsChange() {
@@ -84,15 +86,17 @@ export default class MemberListTeam extends React.Component {
}
nextPage(page) {
- loadProfilesAndTeamMembers((page + 1) * USERS_PER_PAGE, USERS_PER_PAGE);
+ loadProfilesAndTeamMembers(page, USERS_PER_PAGE);
}
search(term) {
clearTimeout(this.searchTimeoutId);
+ this.term = term;
if (term === '') {
- this.setState({search: false, term, users: UserStore.getProfileListInTeam(), teamMembers: Object.assign([], TeamStore.getMembersInTeam())});
+ this.setState({loading: false});
this.searchTimeoutId = '';
+ this.onChange();
return;
}
@@ -106,7 +110,7 @@ export default class MemberListTeam extends React.Component {
if (searchTimeoutId !== this.searchTimeoutId) {
return;
}
- this.setState({loading: true, search: true, users, term, teamMembers: Object.assign([], TeamStore.getMembersInTeam())});
+ this.setState({loading: true});
loadTeamMembersForProfilesList(users, TeamStore.getCurrentId(), this.loadComplete);
}
);