82 lines
1.9 KiB
HTML
82 lines
1.9 KiB
HTML
|
<ModalDialog :label :shown :closed :title background="var(--main-bg)">
|
||
|
<div class="custom-emoji-container">
|
||
|
{{#if emojis.length}}
|
||
|
<ul class="custom-emoji-list">
|
||
|
{{#each emojis as emoji}}
|
||
|
<li class="custom-emoji">
|
||
|
<button type="button" on:click="onClickEmoji(emoji)">
|
||
|
<img src="{{$autoplayGifs ? emoji.url : emoji.static_url}}"
|
||
|
alt=":{{emoji.shortcode}}:"
|
||
|
title=":{{emoji.shortcode}}:"
|
||
|
/>
|
||
|
</button>
|
||
|
</li>
|
||
|
{{/each}}
|
||
|
</ul>
|
||
|
{{else}}
|
||
|
<div class="custom-emoji-no-emoji">No custom emoji found for this instance.</div>
|
||
|
{{/if}}
|
||
|
</div>
|
||
|
</ModalDialog>
|
||
|
<style>
|
||
|
.custom-emoji-container {
|
||
|
max-width: 100%;
|
||
|
width: 400px;
|
||
|
height: 300px;
|
||
|
overflow: scroll;
|
||
|
}
|
||
|
.custom-emoji-no-emoji {
|
||
|
font-size: 1.3em;
|
||
|
padding: 20px;
|
||
|
}
|
||
|
.custom-emoji-list {
|
||
|
list-style: none;
|
||
|
display: grid;
|
||
|
grid-template-columns: repeat(auto-fit, minmax(48px, 1fr));
|
||
|
grid-gap: 5px;
|
||
|
padding: 20px 10px;
|
||
|
}
|
||
|
.custom-emoji button {
|
||
|
padding: 0;
|
||
|
margin: 0;
|
||
|
border: none;
|
||
|
cursor: pointer;
|
||
|
box-shadow: none;
|
||
|
background: none;
|
||
|
}
|
||
|
.custom-emoji img {
|
||
|
width: 48px;
|
||
|
height: 48px;
|
||
|
object-fit: contain;
|
||
|
}
|
||
|
|
||
|
</style>
|
||
|
<script>
|
||
|
import ModalDialog from './ModalDialog.html'
|
||
|
import { store } from '../../_store/store'
|
||
|
import { insertEmoji } from '../../_actions/emoji'
|
||
|
|
||
|
export default {
|
||
|
components: {
|
||
|
ModalDialog
|
||
|
},
|
||
|
store: () => store,
|
||
|
computed: {
|
||
|
emojis: ($currentCustomEmoji) => {
|
||
|
if (!$currentCustomEmoji) {
|
||
|
return []
|
||
|
}
|
||
|
return $currentCustomEmoji.filter(emoji => emoji.visible_in_picker)
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
async show() {
|
||
|
this.set({shown: true})
|
||
|
},
|
||
|
onClickEmoji(emoji) {
|
||
|
insertEmoji(emoji)
|
||
|
this.set({closed: true})
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|