summaryrefslogtreecommitdiffstats
path: root/webapp/components/channel_members_modal.jsx
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2016-11-03 11:23:57 -0400
committerCorey Hulen <corey@hulen.com>2016-11-03 08:23:57 -0700
commit1b141681ae6a169272003fa83fb83ba245dbafc7 (patch)
tree29e21a1ee3e579d2179714ac4b8a6c979b8d55dd /webapp/components/channel_members_modal.jsx
parent0234f793f29a90572d2288b7b22b75cd5ab83648 (diff)
downloadchat-1b141681ae6a169272003fa83fb83ba245dbafc7.tar.gz
chat-1b141681ae6a169272003fa83fb83ba245dbafc7.tar.bz2
chat-1b141681ae6a169272003fa83fb83ba245dbafc7.zip
Add status listeners back to user list modals (#4428)
Diffstat (limited to 'webapp/components/channel_members_modal.jsx')
-rw-r--r--webapp/components/channel_members_modal.jsx26
1 files changed, 22 insertions, 4 deletions
diff --git a/webapp/components/channel_members_modal.jsx b/webapp/components/channel_members_modal.jsx
index 76ce535ad..75810cf05 100644
--- a/webapp/components/channel_members_modal.jsx
+++ b/webapp/components/channel_members_modal.jsx
@@ -27,6 +27,7 @@ export default class ChannelMembersModal extends React.Component {
super(props);
this.onChange = this.onChange.bind(this);
+ this.onStatusChange = this.onStatusChange.bind(this);
this.handleRemove = this.handleRemove.bind(this);
this.createRemoveMemberButton = this.createRemoveMemberButton.bind(this);
this.search = this.search.bind(this);
@@ -40,7 +41,8 @@ export default class ChannelMembersModal extends React.Component {
users: [],
total: stats.member_count,
showInviteModal: false,
- search: false
+ search: false,
+ statusChange: false
};
}
@@ -48,17 +50,25 @@ export default class ChannelMembersModal extends React.Component {
if (!this.props.show && nextProps.show) {
ChannelStore.addStatsChangeListener(this.onChange);
UserStore.addInChannelChangeListener(this.onChange);
+ UserStore.addStatusesChangeListener(this.onStatusChange);
this.onChange();
AsyncClient.getProfilesInChannel(this.props.channel.id, 0);
} else if (this.props.show && !nextProps.show) {
ChannelStore.removeStatsChangeListener(this.onChange);
UserStore.removeInChannelChangeListener(this.onChange);
+ UserStore.removeStatusesChangeListener(this.onStatusChange);
}
}
- onChange() {
- if (this.state.search) {
+ componentWillUnmount() {
+ ChannelStore.removeStatsChangeListener(this.onChange);
+ UserStore.removeInChannelChangeListener(this.onChange);
+ UserStore.removeStatusesChangeListener(this.onStatusChange);
+ }
+
+ onChange(force) {
+ if (this.state.search && !force) {
this.search(this.term);
return;
}
@@ -70,6 +80,13 @@ export default class ChannelMembersModal extends React.Component {
});
}
+ onStatusChange() {
+ // Initiate a render to pick up on new statuses
+ this.setState({
+ statusChange: !this.state.statusChange
+ });
+ }
+
handleRemove(user) {
const userId = user.id;
@@ -110,7 +127,8 @@ export default class ChannelMembersModal extends React.Component {
this.term = term;
if (term === '') {
- this.setState({users: UserStore.getProfileListInChannel(this.props.channel.id), search: false});
+ this.onChange(true);
+ this.setState({search: false});
return;
}