forked from OpenNeo/impress
Emi Matchu
c011e99819
First one, Turbo reasonably yelled at us in the JS console that we should put its script tag in the `head` rather than the `body`, because it re-executes scripts in the `body` and we don't want to spin up Turbo multiple times! I also removed some scripts that aren't relevant anymore, fixed a bug in `outfits/new.js` where failing to load a donation pet would cause the preview thing to not work when you type (I think this might've already been an issue?), reworked `item_header.js` to just run once in the `head`, and split scripts into `:javascripts` (run once in `head`) vs `:javascripts_body` (run every page load in `body`).
19 lines
611 B
JavaScript
19 lines
611 B
JavaScript
function setFormStateCookie(value) {
|
|
const thirtyDays = 60 * 60 * 24 * 30;
|
|
document.cookie = `DTIItemPageUserListsFormState=${value};max-age=${thirtyDays}`;
|
|
}
|
|
|
|
document.addEventListener("click", (event) => {
|
|
if (event.target.matches(".item-header .user-lists-form-opener")) {
|
|
const header = event.target.closest(".item-header");
|
|
const form = header.querySelector(".user-lists-form");
|
|
if (form.hasAttribute("hidden")) {
|
|
form.removeAttribute("hidden");
|
|
setFormStateCookie("open");
|
|
} else {
|
|
form.setAttribute("hidden", "");
|
|
setFormStateCookie("closed");
|
|
}
|
|
event.preventDefault();
|
|
}
|
|
});
|