83 lines
2.5 KiB
JavaScript
83 lines
2.5 KiB
JavaScript
import { loadGlucksbox } from "./quickmenu/glucksbox.js";
|
||
import { loadEvents } from "./quickmenu/events.js";
|
||
import { loadHeldenbonus } from "./quickmenu/heldenbonus.js";
|
||
import { loadSealedliga } from "./quickmenu/sealedliga.js";
|
||
import { loadBeschwoerer } from "./quickmenu/beschwoerer.js";
|
||
import { loadOnlinebonus } from "./quickmenu/onlinebonus.js";
|
||
import { loadAktionen } from "./quickmenu/aktionen.js";
|
||
import { loadBasar } from "./quickmenu/basar.js";
|
||
import { loadBoosteraktion } from "./quickmenu/boosteraktion.js";
|
||
import { loadBoosterjagd } from "./quickmenu/boosterjagd.js";
|
||
|
||
/* Popup-ID → Loader Funktion */
|
||
const popupLoaders = {
|
||
"qm-popup-glucksbox": loadGlucksbox,
|
||
"qm-popup-events": loadEvents,
|
||
"qm-popup-heldenbonus": loadHeldenbonus,
|
||
"qm-popup-sealedliga": loadSealedliga,
|
||
"qm-popup-beschwoerer": loadBeschwoerer,
|
||
"qm-popup-onlinebonus": loadOnlinebonus,
|
||
"qm-popup-aktionen": loadAktionen,
|
||
"qm-popup-basar": loadBasar,
|
||
"qm-popup-boosteraktion": loadBoosteraktion,
|
||
"qm-popup-boosterjagd": loadBoosterjagd,
|
||
};
|
||
|
||
/* ================================
|
||
Quick Menu – Toggle
|
||
================================ */
|
||
|
||
const toggleBtn = document.getElementById("quickmenu-toggle");
|
||
const panel = document.getElementById("quickmenu-panel");
|
||
const overlay = document.getElementById("qm-overlay");
|
||
|
||
let menuOpen = true;
|
||
|
||
toggleBtn.addEventListener("click", () => {
|
||
menuOpen = !menuOpen;
|
||
panel.classList.toggle("hidden", !menuOpen);
|
||
toggleBtn.textContent = menuOpen ? "\u25c4" : "\u25ba";
|
||
});
|
||
|
||
/* ================================
|
||
Quick Menu – Popups öffnen
|
||
================================ */
|
||
|
||
document.querySelectorAll(".qm-slot").forEach((slot) => {
|
||
slot.addEventListener("click", () => {
|
||
const id = slot.dataset.popup;
|
||
if (!id) return;
|
||
|
||
const popup = document.getElementById(id);
|
||
if (!popup) return;
|
||
|
||
overlay.classList.add("active");
|
||
popup.classList.add("active");
|
||
|
||
// Zugehörigen Loader aufrufen
|
||
const loader = popupLoaders[id];
|
||
if (loader) loader();
|
||
});
|
||
});
|
||
|
||
/* ================================
|
||
Quick Menu – Popups schließen
|
||
================================ */
|
||
|
||
document.querySelectorAll(".qm-popup-close").forEach((btn) => {
|
||
btn.addEventListener("click", closeAllPopups);
|
||
});
|
||
|
||
overlay.addEventListener("click", closeAllPopups);
|
||
|
||
function closeAllPopups() {
|
||
document.querySelectorAll(".qm-popup").forEach((p) => {
|
||
p.classList.remove("active");
|
||
});
|
||
overlay.classList.remove("active");
|
||
}
|
||
|
||
document.addEventListener("keydown", (e) => {
|
||
if (e.key === "Escape") closeAllPopups();
|
||
});
|