image-tagger/module/hooks/renderTokenApplication.mjs

25 lines
845 B
JavaScript

import { ArtBrowser } from "../apps/ArtBrowser.mjs";
/*
This hook handles adding the button for selecting an image using this module
into the prototype token config and the token-specific config. Handling both
apps with a single hook.
*/
Hooks.on(`renderTokenApplication`, (app, form) => {
// Locate where we want to inject the button
/** @type {HTMLElement | undefined} */
const picker = form.querySelector(`file-picker[name="texture.src"]`);
if (!picker) { return };
// Create the button and listener
const button = document.createElement(`button`);
button.type = `button`;
button.classList = `icon fa-solid fa-paintbrush`;
button.addEventListener(`click`, async () => {
const src = await ArtBrowser.select(1);
picker.value = src;
});
// Inject the element into the DOM
picker.insertAdjacentElement(`afterend`, button);
});