2019-03-29 09:48:52 -07:00
|
|
|
const filterByKeyword = (list, keyword = '') => {
|
|
|
|
return list.filter(x => x.shortcode.indexOf(keyword) !== -1)
|
|
|
|
}
|
|
|
|
|
2019-03-29 08:49:32 -07:00
|
|
|
const EmojiSelector = {
|
|
|
|
data () {
|
|
|
|
return {
|
2019-03-29 09:48:52 -07:00
|
|
|
open: false,
|
|
|
|
keyword: ''
|
2019-03-29 08:49:32 -07:00
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
togglePanel () {
|
|
|
|
this.open = !this.open
|
2019-03-29 12:56:50 -07:00
|
|
|
},
|
|
|
|
onEmoji (emoji) {
|
|
|
|
const value = emoji.image_url ? `:${emoji.shortcode}:` : emoji.utf
|
|
|
|
this.$emit('emoji', ` ${value} `)
|
|
|
|
this.open = false
|
2019-03-29 08:49:32 -07:00
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
2019-03-29 09:48:52 -07:00
|
|
|
emojis () {
|
|
|
|
const standardEmojis = this.$store.state.instance.emoji || []
|
|
|
|
const customEmojis = this.$store.state.instance.customEmoji || []
|
|
|
|
return {
|
|
|
|
standard: {
|
|
|
|
text: 'Standard',
|
|
|
|
icon: 'icon-star',
|
|
|
|
emojis: filterByKeyword(standardEmojis, this.keyword)
|
|
|
|
},
|
|
|
|
custom: {
|
|
|
|
text: 'Custom',
|
|
|
|
icon: 'icon-picture',
|
|
|
|
emojis: filterByKeyword(customEmojis, this.keyword)
|
|
|
|
}
|
|
|
|
}
|
2019-03-29 08:49:32 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default EmojiSelector
|