diff options
Diffstat (limited to 'webapp/components/suggestion/channel_mention_provider.jsx')
-rw-r--r-- | webapp/components/suggestion/channel_mention_provider.jsx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/webapp/components/suggestion/channel_mention_provider.jsx b/webapp/components/suggestion/channel_mention_provider.jsx index baca006cb..1d85d8082 100644 --- a/webapp/components/suggestion/channel_mention_provider.jsx +++ b/webapp/components/suggestion/channel_mention_provider.jsx @@ -54,6 +54,7 @@ export default class ChannelMentionProvider extends Provider { constructor() { super(); + this.lastTermWithNoResults = ''; this.lastCompletedWord = ''; } @@ -65,6 +66,11 @@ export default class ChannelMentionProvider extends Provider { return false; } + if (this.lastTermWithNoResults && pretext.startsWith(this.lastTermWithNoResults)) { + // Just give up since we know it won't return any results + return false; + } + if (this.lastCompletedWord && captured[0].startsWith(this.lastCompletedWord)) { // It appears we're still matching a channel handle that we already completed return false; @@ -79,12 +85,14 @@ export default class ChannelMentionProvider extends Provider { autocompleteChannels( prefix, - (data) => { + (channels) => { if (this.shouldCancelDispatch(prefix)) { return; } - const channels = data; + if (channels.length === 0) { + this.lastTermWithNoResults = pretext; + } // Wrap channels in an outer object to avoid overwriting the 'type' property. const wrappedChannels = []; |