Merge branch 'feature/normal-emoji-completion' into 'develop'

Add completion for normal emoji.

Closes #15

See merge request pleroma/pleroma-fe!169
This commit is contained in:
lambda 2018-02-01 16:26:43 +00:00
commit 3ff39f9b39
4 changed files with 20 additions and 5 deletions

View file

@ -64,14 +64,15 @@ const PostStatusForm = {
img: profile_image_url_original img: profile_image_url_original
})) }))
} else if (firstchar === ':') { } else if (firstchar === ':') {
const matchedEmoji = filter(this.emoji, (emoji) => emoji.shortcode.match(this.textAtCaret.slice(1))) const matchedEmoji = filter(this.emoji.concat(this.customEmoji), (emoji) => emoji.shortcode.match(this.textAtCaret.slice(1)))
if (matchedEmoji.length <= 0) { if (matchedEmoji.length <= 0) {
return false return false
} }
return map(take(matchedEmoji, 5), ({shortcode, image_url}) => ({ return map(take(matchedEmoji, 5), ({shortcode, image_url, utf}) => ({
// eslint-disable-next-line camelcase // eslint-disable-next-line camelcase
screen_name: `:${shortcode}:`, screen_name: `:${shortcode}:`,
name: '', name: '',
utf: utf || '',
img: image_url img: image_url
})) }))
} else { } else {
@ -90,6 +91,9 @@ const PostStatusForm = {
}, },
emoji () { emoji () {
return this.$store.state.config.emoji || [] return this.$store.state.config.emoji || []
},
customEmoji () {
return this.$store.state.config.customEmoji || []
} }
}, },
methods: { methods: {

View file

@ -6,8 +6,9 @@
</div> </div>
<div style="position:relative;" v-if="candidates"> <div style="position:relative;" v-if="candidates">
<div class="autocomplete-panel base05-background"> <div class="autocomplete-panel base05-background">
<div v-for="candidate in candidates" @click="replace(candidate.screen_name + ' ')" class="autocomplete base02"> <div v-for="candidate in candidates" @click="replace(candidate.utf || (candidate.screen_name + ' '))" class="autocomplete base02">
<img :src="candidate.img"></img> <span v-if="candidate.img"><img :src="candidate.img"></img></span>
<span v-else>{{candidate.utf}}</span>
<span> <span>
{{candidate.screen_name}} {{candidate.screen_name}}
<small class="base02">{{candidate.name}}</small> <small class="base02">{{candidate.name}}</small>

View file

@ -137,7 +137,7 @@ window.fetch('/api/pleroma/emoji.json')
const emoji = Object.keys(values).map((key) => { const emoji = Object.keys(values).map((key) => {
return { shortcode: key, image_url: values[key] } return { shortcode: key, image_url: values[key] }
}) })
store.dispatch('setOption', { name: 'emoji', value: emoji }) store.dispatch('setOption', { name: 'customEmoji', value: emoji })
store.dispatch('setOption', { name: 'pleromaBackend', value: true }) store.dispatch('setOption', { name: 'pleromaBackend', value: true })
}, },
(failure) => { (failure) => {
@ -146,3 +146,12 @@ window.fetch('/api/pleroma/emoji.json')
), ),
(error) => console.log(error) (error) => console.log(error)
) )
window.fetch('/static/emoji.json')
.then((res) => res.json())
.then((values) => {
const emoji = Object.keys(values).map((key) => {
return { shortcode: key, image_url: false, 'utf': values[key] }
})
store.dispatch('setOption', { name: 'emoji', value: emoji })
})

1
static/emoji.json Normal file

File diff suppressed because one or more lines are too long