2019-03-29 16:48:52 +00:00
|
|
|
const filterByKeyword = (list, keyword = '') => {
|
2019-07-28 13:07:01 +00:00
|
|
|
return list.filter(x => x.displayText.includes(keyword))
|
2019-03-29 16:48:52 +00:00
|
|
|
}
|
|
|
|
|
2019-07-28 10:56:08 +00:00
|
|
|
const EmojiPicker = {
|
2019-03-29 15:49:32 +00:00
|
|
|
data () {
|
|
|
|
return {
|
2019-04-05 18:51:25 +00:00
|
|
|
keyword: '',
|
2019-08-12 11:20:08 +00:00
|
|
|
activeGroup: 'standard',
|
|
|
|
showingAdditional: false
|
2019-03-29 15:49:32 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
2019-03-29 19:56:50 +00:00
|
|
|
onEmoji (emoji) {
|
2019-07-28 13:07:01 +00:00
|
|
|
const value = emoji.imageUrl ? `:${emoji.displayText}:` : emoji.replacement
|
2019-03-29 19:56:50 +00:00
|
|
|
this.$emit('emoji', ` ${value} `)
|
|
|
|
this.open = false
|
2019-04-05 18:51:25 +00:00
|
|
|
},
|
|
|
|
highlight (key) {
|
|
|
|
const ref = this.$refs['group-' + key]
|
|
|
|
const top = ref[0].offsetTop
|
|
|
|
this.$refs['emoji-groups'].scrollTop = top + 1
|
|
|
|
this.activeGroup = key
|
|
|
|
},
|
|
|
|
scrolledGroup (e) {
|
|
|
|
const top = e.target.scrollTop
|
|
|
|
Object.keys(this.emojis).forEach(key => {
|
|
|
|
if (this.$refs['group-' + key][0].offsetTop < top) {
|
|
|
|
this.activeGroup = key
|
|
|
|
}
|
|
|
|
})
|
2019-08-12 11:20:08 +00:00
|
|
|
},
|
|
|
|
toggleAdditional (value) {
|
|
|
|
this.showingAdditional = value
|
2019-03-29 15:49:32 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
2019-03-29 16:48:52 +00:00
|
|
|
emojis () {
|
|
|
|
const standardEmojis = this.$store.state.instance.emoji || []
|
|
|
|
const customEmojis = this.$store.state.instance.customEmoji || []
|
|
|
|
return {
|
|
|
|
custom: {
|
|
|
|
text: 'Custom',
|
|
|
|
icon: 'icon-picture',
|
|
|
|
emojis: filterByKeyword(customEmojis, this.keyword)
|
2019-07-28 13:07:01 +00:00
|
|
|
},
|
|
|
|
standard: {
|
|
|
|
text: 'Standard',
|
|
|
|
icon: 'icon-star',
|
|
|
|
emojis: filterByKeyword(standardEmojis, this.keyword)
|
2019-03-29 16:48:52 +00:00
|
|
|
}
|
|
|
|
}
|
2019-03-29 15:49:32 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-07-28 10:56:08 +00:00
|
|
|
export default EmojiPicker
|