summaryrefslogtreecommitdiffstats
path: root/webapp/components/suggestion/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/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/provider.jsx')
-rw-r--r--webapp/components/suggestion/provider.jsx28
1 files changed, 28 insertions, 0 deletions
diff --git a/webapp/components/suggestion/provider.jsx b/webapp/components/suggestion/provider.jsx
new file mode 100644
index 000000000..db34dcebf
--- /dev/null
+++ b/webapp/components/suggestion/provider.jsx
@@ -0,0 +1,28 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+export default class Provider {
+ constructor() {
+ this.latestPrefix = '';
+ this.latestComplete = true;
+ }
+
+ handlePretextChanged(suggestionId, pretext) { // eslint-disable-line no-unused-vars
+ // NO-OP for inherited classes to override
+ }
+
+ startNewRequest(prefix) {
+ this.latestPrefix = prefix;
+ this.latestComplete = false;
+ }
+
+ shouldCancelDispatch(prefix) {
+ if (prefix === this.latestPrefix) {
+ this.latestComplete = true;
+ } else if (this.latestComplete) {
+ return true;
+ }
+
+ return false;
+ }
+}