From fee654f1eee276a1d30c8fcb2699e567fc281967 Mon Sep 17 00:00:00 2001 From: Dym Sohin Date: Mon, 21 Sep 2020 17:29:36 +0200 Subject: [PATCH] feat/reorder-emojis-by-position-of-keyword --- src/components/emoji_picker/emoji_picker.js | 13 ++++++++++--- src/components/react_button/react_button.js | 11 ++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js index 5c09f6ca..713ecd8b 100644 --- a/src/components/emoji_picker/emoji_picker.js +++ b/src/components/emoji_picker/emoji_picker.js @@ -8,10 +8,17 @@ const LOAD_EMOJI_BY = 60 const LOAD_EMOJI_MARGIN = 64 const filterByKeyword = (list, keyword = '') => { + if (keyword === '') return list + const keywordLowercase = keyword.toLowerCase() - return list.filter(emoji => - emoji.displayText.toLowerCase().includes(keywordLowercase) - ) + const orderedEmojiList = [] + for (const emoji of list) { + const indexOfKeyword = emoji.displayText.toLowerCase().indexOf( keywordLowercase ) + if ( indexOfKeyword > -1 ) { + orderedEmojiList.splice(indexOfKeyword, 0, emoji) + } + } + return orderedEmojiList } const EmojiPicker = { diff --git a/src/components/react_button/react_button.js b/src/components/react_button/react_button.js index abcf0455..473a2506 100644 --- a/src/components/react_button/react_button.js +++ b/src/components/react_button/react_button.js @@ -29,9 +29,14 @@ const ReactButton = { emojis () { if (this.filterWord !== '') { const filterWordLowercase = this.filterWord.toLowerCase() - return this.$store.state.instance.emoji.filter(emoji => - emoji.displayText.toLowerCase().includes(filterWordLowercase) - ) + const orderedEmojiList = [] + for (const emoji of this.$store.state.instance.emoji) { + const indexOfFilterWord = emoji.displayText.toLowerCase().indexOf( filterWordLowercase ) + if ( indexOfFilterWord > -1 ) { + orderedEmojiList.splice(indexOfFilterWord, 0, emoji) + } + } + return orderedEmojiList } return this.$store.state.instance.emoji || [] },