74 lines
2.0 KiB
JavaScript
74 lines
2.0 KiB
JavaScript
// HTMX event listener
|
|
document.addEventListener("DOMContentLoaded", (event) => {
|
|
document.body.addEventListener("htmx:beforeSwap", function(evt) {
|
|
if (evt.detail.xhr.status === 422) {
|
|
evt.detail.shouldSwap = true;
|
|
evt.detail.isError = false;
|
|
}
|
|
});
|
|
|
|
document.body.addEventListener("HPUpdated", function() {
|
|
var input = document.getElementById("damageInput");
|
|
input.value = "";
|
|
input.removeAttribute("aria-invalid");
|
|
|
|
var errorMessage = document.getElementById("damageError");
|
|
if (errorMessage) {
|
|
errorMessage.parentNode.removeChild(errorMessage);
|
|
}
|
|
|
|
var savingthrow = document.getElementById("savingthrow");
|
|
savingthrow.checked = false;
|
|
});
|
|
|
|
document.body.addEventListener("ManaUpdated", function() {
|
|
var input = document.getElementById("manaInput");
|
|
input.value = "";
|
|
input.removeAttribute("aria-invalid");
|
|
|
|
var errorMessage = document.getElementById("manaError");
|
|
if (errorMessage) {
|
|
errorMessage.parentNode.removeChild(errorMessage);
|
|
}
|
|
});
|
|
|
|
document.body.addEventListener("BaseUpdated", function() {
|
|
var errorMessage = document.getElementById("baseError");
|
|
if (errorMessage) {
|
|
errorMessage.parentNode.removeChild(errorMessage);
|
|
}
|
|
});
|
|
|
|
});
|
|
|
|
// theme switching
|
|
let atr = 'data-theme';
|
|
let localTheme = localStorage.getItem(atr)
|
|
if (localTheme) {
|
|
setTheme(localTheme);
|
|
}
|
|
|
|
// if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches && localTheme == null) {
|
|
// // dark mode
|
|
// setTheme('dark');
|
|
// }
|
|
|
|
function toggleColorMode() {
|
|
let el = document.documentElement;
|
|
let atr_data = el.getAttribute(atr);
|
|
|
|
if (atr_data == 'light') {
|
|
setTheme('dark');
|
|
} else {
|
|
setTheme('light');
|
|
}
|
|
}
|
|
|
|
function setTheme(theme) {
|
|
let el = document.documentElement;
|
|
el.getAttribute(atr);
|
|
el.setAttribute(atr, theme);
|
|
localStorage.setItem(atr, theme)
|
|
}
|
|
|