aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShpuld Shpludson <shp@cock.li>2020-10-13 15:00:06 +0000
committerShpuld Shpludson <shp@cock.li>2020-10-13 15:00:06 +0000
commit0e14cd6102b1dde55697b80f385df927080a744f (patch)
tree75800d49ceca27cf088bd2d8f6470360d2d5987d
parentd86cd3e850fe1c47a52b7730fec126f5787ab439 (diff)
parentbb59b8ee56f8c5c89720c9a42037a730caba4d11 (diff)
Merge branch 'feat/reorder-emojis-by-position-of-keyword' into 'develop'
feat/reorder-emojis-by-position-of-keyword See merge request pleroma/pleroma-fe!1240
-rw-r--r--src/components/emoji_picker/emoji_picker.js16
-rw-r--r--src/components/react_button/react_button.js14
2 files changed, 24 insertions, 6 deletions
diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js
index 5c09f6ca..3ad80df3 100644
--- a/src/components/emoji_picker/emoji_picker.js
+++ b/src/components/emoji_picker/emoji_picker.js
@@ -8,10 +8,20 @@ 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)
- )
+ let orderedEmojiList = []
+ for (const emoji of list) {
+ const indexOfKeyword = emoji.displayText.toLowerCase().indexOf(keywordLowercase)
+ if (indexOfKeyword > -1) {
+ if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {
+ orderedEmojiList[indexOfKeyword] = []
+ }
+ orderedEmojiList[indexOfKeyword].push(emoji)
+ }
+ }
+ return orderedEmojiList.flat()
}
const EmojiPicker = {
diff --git a/src/components/react_button/react_button.js b/src/components/react_button/react_button.js
index 11627e9c..dd71e546 100644
--- a/src/components/react_button/react_button.js
+++ b/src/components/react_button/react_button.js
@@ -28,9 +28,17 @@ const ReactButton = {
emojis () {
if (this.filterWord !== '') {
const filterWordLowercase = this.filterWord.toLowerCase()
- return this.$store.state.instance.emoji.filter(emoji =>
- emoji.displayText.toLowerCase().includes(filterWordLowercase)
- )
+ let orderedEmojiList = []
+ for (const emoji of this.$store.state.instance.emoji) {
+ const indexOfFilterWord = emoji.displayText.toLowerCase().indexOf(filterWordLowercase)
+ if (indexOfFilterWord > -1) {
+ if (!Array.isArray(orderedEmojiList[indexOfFilterWord])) {
+ orderedEmojiList[indexOfFilterWord] = []
+ }
+ orderedEmojiList[indexOfFilterWord].push(emoji)
+ }
+ }
+ return orderedEmojiList.flat()
}
return this.$store.state.instance.emoji || []
},