From a12581cb9eba725425dd7222a4986870eacda02e Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 22 Nov 2016 12:21:51 -0500 Subject: Cleared at mention suggestions when something invalid is typed (#4633) --- .../components/suggestion/at_mention_provider.jsx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'webapp/components') diff --git a/webapp/components/suggestion/at_mention_provider.jsx b/webapp/components/suggestion/at_mention_provider.jsx index 13b9344ad..6118b8d98 100644 --- a/webapp/components/suggestion/at_mention_provider.jsx +++ b/webapp/components/suggestion/at_mention_provider.jsx @@ -4,6 +4,7 @@ import Suggestion from './suggestion.jsx'; import ChannelStore from 'stores/channel_store.jsx'; +import SuggestionStore from 'stores/suggestion_store.jsx'; import {autocompleteUsersInChannel} from 'actions/user_actions.jsx'; @@ -106,11 +107,22 @@ export default class AtMentionProvider { } componentWillUnmount() { - clearTimeout(this.timeoutId); + this.clearTimeout(this.timeoutId); + } + + clearTimeout() { + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = ''; + + return true; + } + + return false; } handlePretextChanged(suggestionId, pretext) { - clearTimeout(this.timeoutId); + const hadSuggestions = this.clearTimeout(this.timeoutId); const captured = (/(?:^|\W)@([a-z0-9\-._]*)$/i).exec(pretext.toLowerCase()); if (captured) { @@ -160,5 +172,10 @@ export default class AtMentionProvider { Constants.AUTOCOMPLETE_TIMEOUT ); } + + if (hadSuggestions) { + // Clear the suggestions since the user has now typed something invalid + SuggestionStore.clearSuggestions(suggestionId); + } } } -- cgit v1.2.3-1-g7c22