import { EmojiButton } from "@joeattardi/emoji-button"; // eslint-disable-next-line require-jsdoc export default function addInputEmoji() { const containers = document.querySelectorAll("[data-input-emoji]"); if (containers.length) { containers.forEach((elem) => { const picker = new EmojiButton({ position: "bottom-end", rootElement: elem.closest("form")?.parentElement || document.body, zIndex: 2000 }); // if the selector is inside a modal window // this allows shows the emoji menu uncut const reveal = elem.closest("[data-reveal]") if (reveal) { reveal.style.overflowY = "unset" } const wrapper = document.createElement("div"); wrapper.className = "emoji__container" const btnContainer = document.createElement("div"); btnContainer.className = "emoji__trigger" btnContainer.innerHTML = '' elem.parentNode.insertBefore(wrapper, elem); wrapper.appendChild(elem); wrapper.appendChild(btnContainer); btnContainer.addEventListener("click", () => picker.togglePicker(btnContainer)) picker.on("emoji", ({ emoji }) => { elem.value += ` ${emoji} ` const event = new Event("emoji.added"); elem.dispatchEvent(event); }); }) } };