summaryrefslogtreecommitdiffstats
path: root/webapp/components/suggestion/switch_channel_provider.jsx
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2016-12-21 12:45:21 -0500
committerHarrison Healey <harrisonmhealey@gmail.com>2016-12-21 12:45:21 -0500
commitcadc9e11e4c5456bae97d8ba4031ea9e72edf7fb (patch)
treea1d98954c3fdc2fbd30a04289c0b6c5430f45ad9 /webapp/components/suggestion/switch_channel_provider.jsx
parent26e43c671c4252dccbf3b0e9257407d41e4297ae (diff)
downloadchat-cadc9e11e4c5456bae97d8ba4031ea9e72edf7fb.tar.gz
chat-cadc9e11e4c5456bae97d8ba4031ea9e72edf7fb.tar.bz2
chat-cadc9e11e4c5456bae97d8ba4031ea9e72edf7fb.zip
Remove race between multiple autocomplete requests (#4860)
Diffstat (limited to 'webapp/components/suggestion/switch_channel_provider.jsx')
-rw-r--r--webapp/components/suggestion/switch_channel_provider.jsx9
1 files changed, 8 insertions, 1 deletions
diff --git a/webapp/components/suggestion/switch_channel_provider.jsx b/webapp/components/suggestion/switch_channel_provider.jsx
index bf9e7c646..35ce4d578 100644
--- a/webapp/components/suggestion/switch_channel_provider.jsx
+++ b/webapp/components/suggestion/switch_channel_provider.jsx
@@ -2,6 +2,7 @@
// See License.txt for license information.
import Suggestion from './suggestion.jsx';
+import Provider from './provider.jsx';
import ChannelStore from 'stores/channel_store.jsx';
import UserStore from 'stores/user_store.jsx';
@@ -58,15 +59,21 @@ class SwitchChannelSuggestion extends Suggestion {
}
}
-export default class SwitchChannelProvider {
+export default class SwitchChannelProvider extends Provider {
handlePretextChanged(suggestionId, channelPrefix) {
if (channelPrefix) {
+ this.startNewRequest(channelPrefix);
+
const allChannels = ChannelStore.getAll();
const channels = [];
autocompleteUsers(
channelPrefix,
(users) => {
+ if (this.shouldCancelDispatch(channelPrefix)) {
+ return;
+ }
+
const currentId = UserStore.getCurrentId();
for (const id of Object.keys(allChannels)) {