akkoma-fe/src/components/emoji-input/emoji-input.vue

49 lines
1.2 KiB
Vue
Raw Normal View History

2019-03-26 02:38:15 +00:00
<template>
<div class="emoji-input">
<slot
:class="classname"
2019-03-26 02:38:15 +00:00
:value="value"
:placeholder="placeholder"
@input="onInput"
@click="setCaret"
@keyup="setCaret"
@keydown="onKeydown"
@keydown.down="cycleForward"
@keydown.up="cycleBackward"
@keydown.shift.tab="cycleBackward"
@keydown.tab="cycleForward"
@keydown.enter="replaceEmoji"
>
</slot>
2019-03-26 02:38:15 +00:00
<div class="autocomplete-panel" v-if="suggestions">
<div class="autocomplete-panel-body">
<div
v-for="(suggestion, index) in suggestions"
2019-03-26 02:38:15 +00:00
:key="index"
@click="replace(suggestion.replacement)"
2019-03-26 02:38:15 +00:00
class="autocomplete-item"
:class="{ highlighted: suggestion.highlighted }"
2019-03-26 02:38:15 +00:00
>
<span v-if="suggestion.img">
<img :src="suggestion.img" />
2019-03-26 02:38:15 +00:00
</span>
<span v-else>{{suggestion.replacement}}</span>
<span>{{suggestion.shortcode}}</span>
2019-03-26 02:38:15 +00:00
</div>
</div>
</div>
</div>
</template>
<script src="./emoji-input.js"></script>
<style lang="scss">
@import '../../_variables.scss';
.emoji-input {
.form-control {
width: 100%;
}
}
</style>