diff options
author | Joram Wilander <jwawilander@gmail.com> | 2016-12-21 12:45:21 -0500 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2016-12-21 12:45:21 -0500 |
commit | cadc9e11e4c5456bae97d8ba4031ea9e72edf7fb (patch) | |
tree | a1d98954c3fdc2fbd30a04289c0b6c5430f45ad9 /webapp/components/suggestion/at_mention_provider.jsx | |
parent | 26e43c671c4252dccbf3b0e9257407d41e4297ae (diff) | |
download | chat-cadc9e11e4c5456bae97d8ba4031ea9e72edf7fb.tar.gz chat-cadc9e11e4c5456bae97d8ba4031ea9e72edf7fb.tar.bz2 chat-cadc9e11e4c5456bae97d8ba4031ea9e72edf7fb.zip |
Remove race between multiple autocomplete requests (#4860)
Diffstat (limited to 'webapp/components/suggestion/at_mention_provider.jsx')
-rw-r--r-- | webapp/components/suggestion/at_mention_provider.jsx | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/webapp/components/suggestion/at_mention_provider.jsx b/webapp/components/suggestion/at_mention_provider.jsx index 9a5e103ad..551f3a72b 100644 --- a/webapp/components/suggestion/at_mention_provider.jsx +++ b/webapp/components/suggestion/at_mention_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'; @@ -100,8 +101,10 @@ class AtMentionSuggestion extends Suggestion { } } -export default class AtMentionProvider { +export default class AtMentionProvider extends Provider { constructor(channelId) { + super(); + this.channelId = channelId; } @@ -110,10 +113,16 @@ export default class AtMentionProvider { if (captured) { const prefix = captured[1]; + this.startNewRequest(prefix); + autocompleteUsersInChannel( prefix, this.channelId, (data) => { + if (this.shouldCancelDispatch(prefix)) { + return; + } + const members = data.in_channel; for (const id of Object.keys(members)) { members[id].type = Constants.MENTION_MEMBERS; |