From cff202241b6eff8f6b381866e00a0392080d05a2 Mon Sep 17 00:00:00 2001 From: Dym Sohin Date: Mon, 21 Sep 2020 18:10:55 +0200 Subject: [PATCH] improved algorithm, possibly speed too --- src/components/emoji_picker/emoji_picker.js | 9 ++++++--- src/components/react_button/react_button.js | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js index 28ab0376..29c559df 100644 --- a/src/components/emoji_picker/emoji_picker.js +++ b/src/components/emoji_picker/emoji_picker.js @@ -11,14 +11,17 @@ const filterByKeyword = (list, keyword = '') => { if (keyword === '') return list const keywordLowercase = keyword.toLowerCase() - const orderedEmojiList = [] + let orderedEmojiList = [] for (const emoji of list) { const indexOfKeyword = emoji.displayText.toLowerCase().indexOf(keywordLowercase) if (indexOfKeyword > -1) { - orderedEmojiList.splice(indexOfKeyword, 0, emoji) + if (!Array.isArray(orderedEmojiList[keywordLowercase])) { + orderedEmojiList[keywordLowercase] = [] + } + orderedEmojiList[keywordLowercase].push(emoji) } } - return orderedEmojiList + return orderedEmojiList.flat() } const EmojiPicker = { diff --git a/src/components/react_button/react_button.js b/src/components/react_button/react_button.js index 28ce884a..16014405 100644 --- a/src/components/react_button/react_button.js +++ b/src/components/react_button/react_button.js @@ -29,14 +29,17 @@ const ReactButton = { emojis () { if (this.filterWord !== '') { const filterWordLowercase = this.filterWord.toLowerCase() - const orderedEmojiList = [] + let 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) + if (!Array.isArray(orderedEmojiList[indexOfFilterWord])) { + orderedEmojiList[indexOfFilterWord] = [] + } + orderedEmojiList[indexOfFilterWord].push(emoji) } } - return orderedEmojiList + return orderedEmojiList.flat() } return this.$store.state.instance.emoji || [] },