livebook/assets/js/hooks/emoji_picker.js
2023-02-14 16:35:06 +01:00

33 lines
754 B
JavaScript

import { createPopup } from "@picmo/popup-picker";
/**
* A hook for the emoji picker input.
*/
const EmojiPicker = {
mounted() {
const button = this.el.querySelector("[data-emoji-button]");
const preview = this.el.querySelector("[data-emoji-preview]");
const input = this.el.querySelector("[data-emoji-input]");
const picker = createPopup(
{ showPreview: false },
{
triggerElement: button,
referenceElement: button,
position: "bottom",
}
);
picker.addEventListener("emoji:select", ({ emoji }) => {
preview.innerHTML = emoji;
input.value = emoji;
});
button.addEventListener("click", (_) => {
picker.toggle();
});
},
};
export default EmojiPicker;