From cbead2d973fb70bf4dc644dd6a8b8c34b49ff6aa Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Thu, 9 Mar 2017 04:15:38 -0500 Subject: Remove race between clearing lists and search requests (#5686) --- webapp/components/admin_console/team_users.jsx | 5 +++-- webapp/components/channel_invite_modal.jsx | 5 +++-- webapp/components/member_list_channel.jsx | 5 +++-- webapp/components/member_list_team.jsx | 5 +++-- webapp/components/more_channels.jsx | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) (limited to 'webapp/components') diff --git a/webapp/components/admin_console/team_users.jsx b/webapp/components/admin_console/team_users.jsx index 0874e4c8c..5bdaedf6e 100644 --- a/webapp/components/admin_console/team_users.jsx +++ b/webapp/components/admin_console/team_users.jsx @@ -148,16 +148,17 @@ export default class UserList extends React.Component { } search(term) { + clearTimeout(this.searchTimeoutId); + if (term === '') { this.setState({search: false, users: UserStore.getProfileListInTeam(this.props.params.team)}); + this.searchTimeoutId = ''; return; } const options = {}; options[UserSearchOptions.ALLOW_INACTIVE] = true; - clearTimeout(this.searchTimeoutId); - const searchTimeoutId = setTimeout( () => { searchUsers( diff --git a/webapp/components/channel_invite_modal.jsx b/webapp/components/channel_invite_modal.jsx index 5deec0794..2f1a10a75 100644 --- a/webapp/components/channel_invite_modal.jsx +++ b/webapp/components/channel_invite_modal.jsx @@ -107,16 +107,17 @@ export default class ChannelInviteModal extends React.Component { } search(term) { + clearTimeout(this.searchTimeoutId); + this.term = term; if (term === '') { this.onChange(true); this.setState({search: false}); + this.searchTimeoutId = ''; return; } - clearTimeout(this.searchTimeoutId); - const searchTimeoutId = setTimeout( () => { searchUsers( diff --git a/webapp/components/member_list_channel.jsx b/webapp/components/member_list_channel.jsx index 6f8a266ad..d9d28bcd0 100644 --- a/webapp/components/member_list_channel.jsx +++ b/webapp/components/member_list_channel.jsx @@ -91,6 +91,8 @@ export default class MemberListChannel extends React.Component { } search(term) { + clearTimeout(this.searchTimeoutId); + if (term === '') { this.setState({ search: false, @@ -99,11 +101,10 @@ export default class MemberListChannel extends React.Component { teamMembers: Object.assign([], TeamStore.getMembersInTeam()), channelMembers: Object.assign([], ChannelStore.getMembersInChannel()) }); + this.searchTimeoutId = ''; return; } - clearTimeout(this.searchTimeoutId); - const searchTimeoutId = setTimeout( () => { searchUsers( diff --git a/webapp/components/member_list_team.jsx b/webapp/components/member_list_team.jsx index df17d7df2..41057a566 100644 --- a/webapp/components/member_list_team.jsx +++ b/webapp/components/member_list_team.jsx @@ -88,13 +88,14 @@ export default class MemberListTeam extends React.Component { } search(term) { + clearTimeout(this.searchTimeoutId); + if (term === '') { this.setState({search: false, term, users: UserStore.getProfileListInTeam(), teamMembers: Object.assign([], TeamStore.getMembersInTeam())}); + this.searchTimeoutId = ''; return; } - clearTimeout(this.searchTimeoutId); - const searchTimeoutId = setTimeout( () => { searchUsers( diff --git a/webapp/components/more_channels.jsx b/webapp/components/more_channels.jsx index d0b5f5399..10f597ad4 100644 --- a/webapp/components/more_channels.jsx +++ b/webapp/components/more_channels.jsx @@ -99,14 +99,15 @@ export default class MoreChannels extends React.Component { } search(term) { + clearTimeout(this.searchTimeoutId); + if (term === '') { this.onChange(true); this.setState({search: false}); + this.searchTimeoutId = ''; return; } - clearTimeout(this.searchTimeoutId); - const searchTimeoutId = setTimeout( () => { searchMoreChannels( -- cgit v1.2.3-1-g7c22