remove jquery cont ChatLog class

This commit is contained in:
Joaquin Pereyra 2025-07-05 13:23:17 -03:00
parent 1cc9dda76e
commit b9b4320a7b

View file

@ -50,13 +50,13 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo
element.addEventListener('mouseenter', this.hoverAdvantage) element.addEventListener('mouseenter', this.hoverAdvantage)
); );
html.querySelectorAll('.advantage').forEach(element => html.querySelectorAll('.advantage').forEach(element =>
element.addEventListener('click', event => this.selectAdvantage.bind(this)(event, data.message)) element.addEventListener('click', event => this.selectAdvantage.call(this, event, data.message))
); );
html.querySelectorAll('.ability-use-button').forEach(element => html.querySelectorAll('.ability-use-button').forEach(element =>
element.addEventListener('click', event => this.abilityUseButton.bind(this)(event, data.message)) element.addEventListener('click', event => this.abilityUseButton.call(this, event, data.message))
); );
html.querySelectorAll('.action-use-button').forEach(element => html.querySelectorAll('.action-use-button').forEach(element =>
element.addEventListener('click', event => this.actionUseButton.bind(this)(event, data.message)) element.addEventListener('click', event => this.actionUseButton.call(this, event, data.message))
); );
}; };
@ -229,24 +229,54 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo
} }
}; };
onToggleTargets = async event => { /**
* Toggle visibility of target containers.
* @param {MouseEvent} event
*/
onToggleTargets(event) {
event.stopPropagation(); event.stopPropagation();
$($(event.currentTarget).parent()).find('.target-container').toggleClass('hidden'); event.currentTarget.parentElement
}; ?.querySelectorAll('.target-container')
.forEach(el => el.classList.toggle('hidden'));
}
hoverAdvantage = event => { /**
$(event.currentTarget).siblings('.advantage').toggleClass('unused'); * Highlight advantage icons on hover.
}; * @param {MouseEvent} event
*/
hoverAdvantage(event) {
const parent = event.currentTarget.parentElement;
if (!parent) return;
selectAdvantage = async (event, message) => { parent.querySelectorAll('.advantage').forEach(el => {
if (el !== event.currentTarget) {
el.classList.toggle('unused');
}
});
}
/**
* Handle selecting an advantage and disable further selection.
* @param {MouseEvent} event
* @param {object} message
*/
async selectAdvantage(event, message) {
event.stopPropagation(); event.stopPropagation();
const updateMessage = game.messages.get(message._id); const updateMessage = game.messages.get(message._id);
await updateMessage.update({ system: { advantageSelected: event.currentTarget.id === 'hope' ? 1 : 2 } }); await updateMessage?.update({
system: { advantageSelected: event.currentTarget.id === 'hope' ? 1 : 2 }
});
const parent = event.currentTarget.parentElement;
if (!parent) return;
parent.querySelectorAll('.advantage').forEach(el => {
el.replaceWith(el.cloneNode(true));
});
}
$(event.currentTarget).siblings('.advantage').off('click');
$(event.currentTarget).off('click');
};
abilityUseButton = async (event, message) => { abilityUseButton = async (event, message) => {
event.stopPropagation(); event.stopPropagation();