From 7a166bd1d6792107a6e55972f4e202e81285bb65 Mon Sep 17 00:00:00 2001 From: A C SREEDHAR REDDY Date: Thu, 25 Feb 2021 01:14:37 +0530 Subject: [PATCH] Calculate the filteredEmojis on first change. (#4987) * if it is a initial render then calculate the filteredemojis * set filteredEmojis based on the previous result * removed timeout variable Co-authored-by: Mattermod --- app/components/emoji_picker/emoji_picker_base.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/components/emoji_picker/emoji_picker_base.js b/app/components/emoji_picker/emoji_picker_base.js index 70a1d65ce..5bfc3a19f 100644 --- a/app/components/emoji_picker/emoji_picker_base.js +++ b/app/components/emoji_picker/emoji_picker_base.js @@ -179,6 +179,7 @@ export default class EmojiPicker extends PureComponent { const nextState = { searchTerm: rawText, }; + const prevSearchTerm = this.state.searchTerm; this.setState(nextState); if (!searchTerm) { @@ -187,13 +188,19 @@ export default class EmojiPicker extends PureComponent { } clearTimeout(this.searchTermTimeout); - const timeout = searchTerm ? 100 : 0; - this.searchTermTimeout = setTimeout(() => { + if (prevSearchTerm === '') { const filteredEmojis = this.searchEmojis(searchTerm); this.setState({ filteredEmojis, }); - }, timeout); + } else { + this.searchTermTimeout = setTimeout(() => { + const filteredEmojis = this.searchEmojis(searchTerm); + this.setState({ + filteredEmojis, + }); + }, 100); + } }; cancelSearch = () => {