|
|
|
@ -3,6 +3,10 @@ import { Icon } from '@iconify/vue'
|
|
|
|
|
import InfiniteLoading from 'v3-infinite-loading' |
|
|
|
|
import { emojiIcons } from '#imports' |
|
|
|
|
|
|
|
|
|
const props = defineProps<{ |
|
|
|
|
showReset?: boolean |
|
|
|
|
}>() |
|
|
|
|
|
|
|
|
|
const emit = defineEmits(['selectIcon']) |
|
|
|
|
let search = $ref('') |
|
|
|
|
|
|
|
|
@ -23,13 +27,14 @@ const load = () => {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const selectIcon = (icon: string) => { |
|
|
|
|
const selectIcon = (icon?: string) => { |
|
|
|
|
search = '' |
|
|
|
|
emit('selectIcon', `emojione:${icon}`) |
|
|
|
|
emit('selectIcon', icon && `emojione:${icon}`) |
|
|
|
|
} |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<template> |
|
|
|
|
<div> |
|
|
|
|
<div class="p-1 w-[280px] h-[280px] flex flex-col gap-1 justify-start nc-emoji" data-testid="nc-emoji-container"> |
|
|
|
|
<div @click.stop> |
|
|
|
|
<input |
|
|
|
@ -49,6 +54,14 @@ const selectIcon = (icon: string) => {
|
|
|
|
|
<InfiniteLoading @infinite="load"><span /></InfiniteLoading> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
<div v-if="props.showReset" class="m-1"> |
|
|
|
|
<a-divider class="!my-2 w-full" /> |
|
|
|
|
<div class="p-1 mt-1 cursor-pointer text-xs inline-block border-gray-200 border-1 rounded" @click="selectIcon()"> |
|
|
|
|
<PhXCircleLight class="text-sm" /> |
|
|
|
|
Reset Icon |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<style scoped> |
|
|
|
|