mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Add status listeners back to user list modals (#4428)
This commit is contained in:
committed by
Corey Hulen
parent
0234f793f2
commit
1b141681ae
@@ -25,6 +25,7 @@ export default class ChannelInviteModal extends React.Component {
|
||||
super(props);
|
||||
|
||||
this.onChange = this.onChange.bind(this);
|
||||
this.onStatusChange = this.onStatusChange.bind(this);
|
||||
this.handleInviteError = this.handleInviteError.bind(this);
|
||||
this.nextPage = this.nextPage.bind(this);
|
||||
this.search = this.search.bind(this);
|
||||
@@ -37,7 +38,8 @@ export default class ChannelInviteModal extends React.Component {
|
||||
this.state = {
|
||||
users: [],
|
||||
total: teamStats.member_count - channelStats.member_count,
|
||||
search: false
|
||||
search: false,
|
||||
statusChange: false
|
||||
};
|
||||
}
|
||||
|
||||
@@ -46,6 +48,7 @@ export default class ChannelInviteModal extends React.Component {
|
||||
TeamStore.addStatsChangeListener(this.onChange);
|
||||
ChannelStore.addStatsChangeListener(this.onChange);
|
||||
UserStore.addNotInChannelChangeListener(this.onChange);
|
||||
UserStore.addStatusesChangeListener(this.onStatusChange);
|
||||
|
||||
this.onChange();
|
||||
AsyncClient.getProfilesNotInChannel(this.props.channel.id, 0);
|
||||
@@ -54,6 +57,7 @@ export default class ChannelInviteModal extends React.Component {
|
||||
TeamStore.removeStatsChangeListener(this.onChange);
|
||||
ChannelStore.removeStatsChangeListener(this.onChange);
|
||||
UserStore.removeNotInChannelChangeListener(this.onChange);
|
||||
UserStore.removeStatusesChangeListener(this.onStatusChange);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,10 +65,11 @@ export default class ChannelInviteModal extends React.Component {
|
||||
ChannelStore.removeStatsChangeListener(this.onChange);
|
||||
ChannelStore.removeChangeListener(this.onChange);
|
||||
UserStore.removeNotInChannelChangeListener(this.onChange);
|
||||
UserStore.removeStatusesChangeListener(this.onStatusChange);
|
||||
}
|
||||
|
||||
onChange() {
|
||||
if (this.state.search) {
|
||||
onChange(force) {
|
||||
if (this.state.search && !force) {
|
||||
this.search(this.term);
|
||||
return;
|
||||
}
|
||||
@@ -78,6 +83,13 @@ export default class ChannelInviteModal extends React.Component {
|
||||
});
|
||||
}
|
||||
|
||||
onStatusChange() {
|
||||
// Initiate a render to pick up on new statuses
|
||||
this.setState({
|
||||
statusChange: !this.state.statusChange
|
||||
});
|
||||
}
|
||||
|
||||
handleInviteError(err) {
|
||||
if (err) {
|
||||
this.setState({
|
||||
@@ -98,7 +110,8 @@ export default class ChannelInviteModal extends React.Component {
|
||||
this.term = term;
|
||||
|
||||
if (term === '') {
|
||||
this.setState({users: UserStore.getProfileListNotInChannel(), search: false});
|
||||
this.onChange(true);
|
||||
this.setState({search: false});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ export default class MemberListTeam extends React.Component {
|
||||
|
||||
componentDidMount() {
|
||||
UserStore.addInTeamChangeListener(this.onChange);
|
||||
UserStore.addStatusesChangeListener(this.onChange);
|
||||
TeamStore.addChangeListener(this.onChange);
|
||||
TeamStore.addStatsChangeListener(this.onStatsChange);
|
||||
|
||||
@@ -47,6 +48,7 @@ export default class MemberListTeam extends React.Component {
|
||||
|
||||
componentWillUnmount() {
|
||||
UserStore.removeInTeamChangeListener(this.onChange);
|
||||
UserStore.removeStatusesChangeListener(this.onChange);
|
||||
TeamStore.removeChangeListener(this.onChange);
|
||||
TeamStore.removeStatsChangeListener(this.onStatsChange);
|
||||
}
|
||||
@@ -55,12 +57,12 @@ export default class MemberListTeam extends React.Component {
|
||||
this.setState({loading: false});
|
||||
}
|
||||
|
||||
onChange() {
|
||||
if (!this.state.search) {
|
||||
this.setState({users: UserStore.getProfileListInTeam()});
|
||||
onChange(force) {
|
||||
if (this.state.search && !force) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.setState({teamMembers: Object.assign([], TeamStore.getMembersInTeam())});
|
||||
this.setState({users: UserStore.getProfileListInTeam(), teamMembers: Object.assign([], TeamStore.getMembersInTeam())});
|
||||
}
|
||||
|
||||
onStatsChange() {
|
||||
@@ -74,7 +76,8 @@ export default class MemberListTeam extends React.Component {
|
||||
|
||||
search(term) {
|
||||
if (term === '') {
|
||||
this.setState({search: false, users: UserStore.getProfileListInTeam()});
|
||||
this.onChange(true);
|
||||
this.setState({search: false});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user