summaryrefslogtreecommitdiffstats
path: root/webapp/components/suggestion/channel_mention_provider.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/suggestion/channel_mention_provider.jsx')
-rw-r--r--webapp/components/suggestion/channel_mention_provider.jsx12
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 = [];