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/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/provider.jsx')
-rw-r--r-- | webapp/components/suggestion/provider.jsx | 28 |
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; + } +} |