import "./style.css"; import PocketBase from "pocketbase"; import { renderSettings } from "./pages/settings.js"; import { renderDesktop } from "./pages/desktop.js"; import { renderKaza } from "./pages/kaza.js"; import { getDefaultCity } from "./utils/locations.js"; const pb = new PocketBase("https://pocketbase.iontalp.com"); const app = document.getElementById("app"); let activeTab = "desktop"; let sidebarOpen = window.innerWidth >= 768; let selectedCity = localStorage.getItem("selected_city"); async function render() { const user = pb.authStore.model; if (!user) { renderLogin(); return; } const avatarUrl = user?.avatar ? `https://pocketbase.iontalp.com/api/files/_pb_users_auth_/${user.id}/${user.avatar}?thumb=100x100` : null; let currentBg = user.selected_bg || "https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?q=80&w=1920"; if (user.selected_city) { selectedCity = user.selected_city; localStorage.setItem("selected_city", selectedCity); } else { const stored = localStorage.getItem("selected_city"); if (stored) { selectedCity = stored; } else { selectedCity = getDefaultCity().name; } } let currentPage; if (activeTab === "settings") { currentPage = await renderSettings( pb, currentBg, (newBg) => { pb.authStore.model.selected_bg = newBg; render(); }, selectedCity, (city) => { selectedCity = city; localStorage.setItem("selected_city", city); render(); }, ); } else if (activeTab === "kaza") { currentPage = renderKaza(pb); } else { currentPage = renderDesktop(selectedCity); } app.innerHTML = `
${sidebarOpen ? `
` : ""}
${currentPage.html}
`; const mainContent = document.getElementById("mainContent"); currentPage.initEvents(mainContent); document.getElementById("navDesktop")?.addEventListener("click", () => { activeTab = "desktop"; render(); }); document.getElementById("navKaza")?.addEventListener("click", () => { activeTab = "kaza"; render(); }); document.getElementById("navSettings")?.addEventListener("click", () => { activeTab = "settings"; render(); }); document.getElementById("logoutBtn")?.addEventListener("click", () => { pb.authStore.clear(); render(); }); document .getElementById("globalSidebarToggle") ?.addEventListener("click", () => { sidebarOpen = !sidebarOpen; render(); }); document.getElementById("sidebarOverlay")?.addEventListener("click", () => { sidebarOpen = false; render(); }); } window.addEventListener("navigate", (e) => { activeTab = e.detail; render(); }); function renderLogin() { app.innerHTML = `

Giriş Yap

`; document.getElementById("loginForm").addEventListener("submit", async (e) => { e.preventDefault(); try { await pb .collection("users") .authWithPassword( document.getElementById("identity").value, document.getElementById("password").value, ); render(); } catch { alert("Giriş başarısız! Bilgilerinizi kontrol edin."); } }); } render();