image-tagger/module/hooks/getHeaderControlsDocumentSheetV2.mjs

25 lines
737 B
JavaScript

import { ArtBrowser } from "../apps/ArtBrowser.mjs";
import { __ID__ } from "../consts.mjs";
Hooks.on(`getHeaderControlsDocumentSheetV2`, (sheet) => {
const original = sheet.options.actions.editImage;
sheet.options.actions.editImage = async (event, target) => {
if (!game.settings.get(__ID__, `openForEditImage`)) {
return original.call(sheet, event, target);
};
if (target.nodeName !== `IMG`) {
throw new Error(`The editImage action is available only for IMG elements.`);
};
const src = await ArtBrowser.select(1);
if (!src) { return };
target.src = src;
if (sheet.options.form.submitOnChange) {
const submit = new Event(`submit`, { cancelable: true });
sheet.form.dispatchEvent(submit);
};
};
});