aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDym Sohin <re@dym.sh>2020-09-21 17:29:36 +0200
committerDym Sohin <re@dym.sh>2020-09-21 17:29:36 +0200
commitfee654f1eee276a1d30c8fcb2699e567fc281967 (patch)
treed2126082271af5791e1ae0c30b70ca5ed9f71f13
parent0c0722a092599cdd2b53548b960b619260407961 (diff)
feat/reorder-emojis-by-position-of-keyword
-rw-r--r--src/components/emoji_picker/emoji_picker.js13
-rw-r--r--src/components/react_button/react_button.js11
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 || []
},