/* eslint-disable import/prefer-default-export */ export async function handleInlineActions(btnWithAction, messageId) { const action = btnWithAction.dataset?.action; const message = game.messages.get(messageId); const actor = message?.speakerActor; if (!actor) return; if (action === "rollback-skill-failure-state") { const rollbackFlag = message.getFlag("deltagreen", "rollbacks"); await actor.update(foundry.utils.deepClone(rollbackFlag)); // eslint-disable-next-line no-use-before-define toggleAllSkillFailures(rollbackFlag); const label = btnWithAction .closest(".rollback-section") ?.querySelector("label"); const oldHtml = label.outerHTML; label.classList.toggle("strike"); message.update({ [`flags.deltagreen.rollbacks`]: rollbackFlag, content: message.content.replace(oldHtml, label.outerHTML), }); } } function toggleAllSkillFailures(data) { for (const skill of Object.values(data.system?.skills || {})) { skill.failure = !skill.failure; } for (const skill of Object.values(data.system?.typedSkills || {})) { skill.failure = !skill.failure; } }