This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Zaimki/components/Twemoji.vue

40 lines
766 B
Vue
Raw Normal View History

2021-11-15 12:11:25 -08:00
<template>
<span>
<span ref="source" v-show="false">
<slot ref="source"></slot>
</span>
<span ref="target"></span>
</span>
</template>
<script>
import twemoji from 'twemoji';
export default {
mounted() {
this.update();
const observer = new MutationObserver(this.update);
observer.observe(this.$refs.source, {
childList: true,
subtree: true
});
this.observer = observer;
},
beforeUnmount() {
this.observer.disconnect();
},
methods: {
update() {
this.$refs.target.innerHTML = twemoji.parse(this.$refs.source.innerHTML);
},
},
};
</script>
<style lang="scss">
.emoji {
height: 1em;
}
</style>