export async function loadSchwarzmarkt() { const ui = document.querySelector(".building-ui"); ui.innerHTML = `

Noch keine Artefakte verfügbar

Schwarzmarkt Angebote folgen bald

`; loadPages(); initMarketTabs(); } async function loadPages() { const res = await fetch("/api/blackmarket/pages"); const data = await res.json(); const container = document.getElementById("market-pages"); let html = ""; for (let i = 1; i <= data.maxPages; i++) { const price = data.prices.find((p) => p.page === i); if (data.ownedPages.includes(i)) { html += `
`; } else if (price) { html += `
${price.price} 🪙
`; } else { html += `
🔒
`; } } container.innerHTML = html; } /* Kaufen */ document.addEventListener("click", async (e) => { const button = e.target.closest(".buy-button"); if (!button) return; const slot = button.closest(".market-slot"); const page = slot.dataset.page; const res = await fetch("/api/blackmarket/buy-page", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ page }), }); const data = await res.json(); if (data.error) { alert(data.error); return; } loadPages(); }); /* Tabs */ function initMarketTabs() { document.querySelectorAll(".market-tab").forEach((tab) => { tab.addEventListener("click", () => { document .querySelectorAll(".market-tab") .forEach((t) => t.classList.remove("active")); tab.classList.add("active"); document .querySelectorAll(".market-tab-content") .forEach((c) => c.classList.remove("active")); document .getElementById("market-" + tab.dataset.tab) .classList.add("active"); }); }); }