Update elementsManager.js

This commit is contained in:
GGodPL 2023-08-02 16:03:19 +02:00 committed by GitHub
parent c058e483f8
commit b23587b7d5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 10 deletions

View File

@ -296,7 +296,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
const applyChange = (property, value) => {
const element = Storage.get("currentElement");
if (elements[element])
if (element && elements[element])
elements[element][property] = value;
let changes = Storage.get("changes", []);
let a;
@ -320,6 +320,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
let customElements = Storage.get("elements", []);
let deletedElements = Storage.get("deletedElements", []);
let lastFreeRemoval = Storage.get("settings", {allowFreeRemoval: false, clearElements: false}, true).allowFreeRemoval;
Storage.set("lastFreeRemoval", lastFreeRemoval);
for (const key of Object.keys(elements).concat(customElements.map(e => e.name)).sort((a, b) => a.localeCompare(b, undefined, {caseFirst: "false"}))) {
const element = document.createElement("li");
const text = span(key); // only the text should be clickable
@ -376,7 +377,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
filterInput.placeholder = "Search elements...";
filterInput.onkeyup = (ev) => {
const val = ev.target.value;
const deleted = Storage.get("deletedElements");
const deleted = Storage.get("deletedElements", []);
for (const c of document.getElementById("elementsList").children) {
const span_ = c.querySelector("span");
if (!span_.innerText.toLowerCase().includes(val.toLowerCase()) || deleted.includes(span_.innerText)) {
@ -646,7 +647,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
const createButton = span("Create Element");
createButton.className = "createButton";
createButton.onclick = () => {
const elementData = Storage.get("newElement");
const elementData = Storage.get("newElement", {});
if (!elementData["name"]) {
document.getElementById("elementsManager/creator/meta/name/required").style.display = "";
}
@ -759,10 +760,10 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
clearElementsButton.type = "button";
if (settings && settings.clearElements) {
clearElementsButton.value = "ON";
clearElementsButton.state = "1";
clearElementsButton.setAttribute("state", "1");
} else {
clearElementsButton.value = "OFF";
clearElementsButton.state = "0";
clearElementsButton.setAttribute("state", "0");
}
clearElementsButton.onclick = (ev) => {
toggleSetting("clearElements", ev.target)
@ -776,13 +777,13 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
allowRemovalButton.type = "button";
if (settings && settings.allowFreeRemoval) {
allowRemovalButton.value = "ON";
allowRemovalButton.state = "1";
allowRemovalButton.setAttribute("state", "1");
} else {
allowRemovalButton.value = "OFF";
allowRemovalButton.state = "0";
allowRemovalButton.setAttribute("state", "0");
}
allowRemovalButton.onclick = (ev) => {
toggleSetting("allowFreeRemoval", ev.target)
toggleSetting("allowFreeRemoval", ev.target);
}
allowRemovalDiv.appendChild(allowRemovalButton);
general.appendChild(allowRemovalDiv);
@ -885,8 +886,9 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
loader: elementManagerLoader,
preOpen: () => {
const currentElement = Storage.get("currentElement");
if (!currentElement) return closeMenu();
const element = elements[currentElement];
if (!element) closeMenu();
if (!element) return closeMenu();
for (const key of Object.keys(properties)) {
for (const prop of properties[key]) {
const id = "elementsManager/" + key + "/" + prop.name;
@ -1080,6 +1082,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
onClose: () => {
const settings = Storage.get("settings", {allowFreeRemoval: false, clearElements: false}, true);
const elements_ = Storage.get("elements", []).map(e => e.name);
const lastFreeRemoval = Storage.get("lastFreeRemoval", false);
if (settings.allowFreeRemoval && !lastFreeRemoval) {
for (const li of document.getElementById("elementsList").children) {
const name = li.querySelector("span").innerText
@ -1115,7 +1118,7 @@ if (enabledMods.includes("mods/betterMenuScreens.js")) {
li.querySelectorAll(".elementRemoveButton").forEach(e => e.remove());
}
}
lastFreeRemoval = settings.allowFreeRemoval;
Storage.set("lastFreeRemoval", settings.allowFreeRemoval);
openMenu("elementsManager", true);
}
}