Skip to content

Instantly share code, notes, and snippets.

@wobsoriano
Last active July 23, 2021 06:37
Show Gist options
  • Save wobsoriano/f5a51881c5527dc68d82bc0efe5eda3c to your computer and use it in GitHub Desktop.
Save wobsoriano/f5a51881c5527dc68d82bc0efe5eda3c to your computer and use it in GitHub Desktop.
Vue 2 and 3 Emoji Picker Component using emoji-picker-element
<template>
<emoji-picker ref="picker"></emoji-picker>
</template>
<script>
import { defineComponent, ref, onMounted, onUnmounted } from 'vue';
// https://github.com/nolanlawson/emoji-picker-element
import 'emoji-picker-element/picker';
export default defineComponent({
emits: ['handleSelect'],
setup(_props, { emit }) {
const picker = ref();
const handleEmojiClick = (event) => {
emit('handleSelect', event.detail);
};
onMounted(() => {
picker.value?.addEventListener('emoji-click', handleEmojiClick, true);
});
onUnmounted(() => {
picker.value?.removeEventListener('emoji-click', handleEmojiClick, true);
});
return {
picker,
};
},
});
</script>
@wobsoriano
Copy link
Author

For Nuxt:

if (process.browser) {
  require('emoji-picker-element');
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment