summaryrefslogtreecommitdiffstats
path: root/webapp/components/member_list_channel.jsx
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-04-25 11:46:02 -0400
committerChristopher Speller <crspeller@gmail.com>2017-04-25 11:46:02 -0400
commit6c4c706313eb765eb00c639f381646be74f27b69 (patch)
tree6068feaa9668dcd74601730ac1a5abfb366402b1 /webapp/components/member_list_channel.jsx
parentcc07c005074348de87854f1c953a549e8772fa03 (diff)
downloadchat-6c4c706313eb765eb00c639f381646be74f27b69.tar.gz
chat-6c4c706313eb765eb00c639f381646be74f27b69.tar.bz2
chat-6c4c706313eb765eb00c639f381646be74f27b69.zip
Start moving webapp to Redux (#6140)
* Start moving webapp to Redux * Fix localforage import * Updates per feedback * Feedback udpates and a few fixes * Minor updates * Fix statuses, config not loading properly, getMe sanitizing too much * Fix preferences * Fix user autocomplete * Fix sessions and audits * Fix error handling for all redux actions * Use new directory structure for components and containers * Refresh immediately on logout instead of after timeout * Add fetch polyfill
Diffstat (limited to 'webapp/components/member_list_channel.jsx')
-rw-r--r--webapp/components/member_list_channel.jsx47
1 files changed, 18 insertions, 29 deletions
diff --git a/webapp/components/member_list_channel.jsx b/webapp/components/member_list_channel.jsx
index e9eef9fb8..df000c132 100644
--- a/webapp/components/member_list_channel.jsx
+++ b/webapp/components/member_list_channel.jsx
@@ -17,6 +17,9 @@ import * as UserAgent from 'utils/user_agent.jsx';
import React from 'react';
+import store from 'stores/redux_store.jsx';
+import {searchProfilesInCurrentChannel} from 'mattermost-redux/selectors/entities/users';
+
const USERS_PER_PAGE = 50;
export default class MemberListChannel extends React.Component {
@@ -29,6 +32,7 @@ export default class MemberListChannel extends React.Component {
this.loadComplete = this.loadComplete.bind(this);
this.searchTimeoutId = 0;
+ this.term = '';
const stats = ChannelStore.getCurrentStats();
@@ -37,8 +41,6 @@ export default class MemberListChannel extends React.Component {
teamMembers: Object.assign({}, TeamStore.getMembersInTeam()),
channelMembers: Object.assign({}, ChannelStore.getMembersInChannel()),
total: stats.member_count,
- search: false,
- term: '',
loading: true
};
}
@@ -66,16 +68,16 @@ export default class MemberListChannel extends React.Component {
this.setState({loading: false});
}
- 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 = searchProfilesInCurrentChannel(store.getState(), this.term);
+ } else {
+ users = UserStore.getProfileListInChannel();
}
this.setState({
- users: UserStore.getProfileListInChannel(),
+ users,
teamMembers: Object.assign({}, TeamStore.getMembersInTeam()),
channelMembers: Object.assign({}, ChannelStore.getMembersInChannel())
});
@@ -87,43 +89,30 @@ export default class MemberListChannel extends React.Component {
}
nextPage(page) {
- loadProfilesAndTeamMembersAndChannelMembers((page + 1) * USERS_PER_PAGE, USERS_PER_PAGE);
+ loadProfilesAndTeamMembersAndChannelMembers(page + 1, USERS_PER_PAGE);
}
search(term) {
clearTimeout(this.searchTimeoutId);
+ this.term = term;
if (term === '') {
- this.setState({
- search: false,
- term,
- users: UserStore.getProfileListInChannel(),
- teamMembers: Object.assign([], TeamStore.getMembersInTeam()),
- channelMembers: Object.assign([], ChannelStore.getMembersInChannel())
- });
+ this.setState({loading: false});
this.searchTimeoutId = '';
+ this.onChange();
return;
}
const searchTimeoutId = setTimeout(
() => {
- searchUsers(
- term,
- TeamStore.getCurrentId(),
- {},
+ searchUsers(term, TeamStore.getCurrentId(), {},
(users) => {
if (searchTimeoutId !== this.searchTimeoutId) {
return;
}
- this.setState({
- loading: true,
- search: true,
- users,
- term,
- teamMembers: Object.assign([], TeamStore.getMembersInTeam()),
- channelMembers: Object.assign([], ChannelStore.getMembersInChannel())
- });
+ this.setState({loading: true});
+
loadTeamMembersAndChannelMembersForProfilesList(users, TeamStore.getCurrentId(), ChannelStore.getCurrentId(), this.loadComplete);
}
);