import { TURKISH_CITIES } from "../utils/locations.js"; export async function renderSettings(pb, currentBg, onBgSelect, currentCity, onCitySelect) { let bgList = []; try { const records = await pb.collection("backgrounds").getFullList(); bgList = records.map((item) => ({ id: item.id, title: item.title || "Duvar Kağıdı", url: `https://pocketbase.iontalp.com/api/files/${item.collectionId}/${item.id}/${item.image || item.file}`, })); } catch (err) { console.error("Görseller yüklenemedi:", err); } const cityOptions = TURKISH_CITIES.map((c) => { const selected = c.name === currentCity ? "selected" : ""; return ``; }).join(""); const html = `

⚙️ Sistem Ayarları

Seçtiğin duvar kağıdı doğrudan PocketBase hesabına kaydedilir.

Bölge Ayarı

Yeni Arka Plan Ekle

Arka Plan Galerisi (${bgList.length})

${bgList .map( (bg) => `
${bg.title}
${bg.title}
`, ) .join("")}
`; return { html, initEvents: (container) => { setupCity(container, pb, onCitySelect); setupUpload(container, pb, onBgSelect); setupGallery(container, pb, onBgSelect); }, }; } function setupCity(container, pb, onCitySelect) { const saveBtn = container.querySelector("#saveCityBtn"); const select = container.querySelector("#citySelect"); const msg = container.querySelector("#cityMsg"); if (!saveBtn || !select) return; saveBtn.addEventListener("click", async () => { const city = select.value; try { await pb.collection("users").update(pb.authStore.model.id, { selected_city: city, }); if (onCitySelect) onCitySelect(city); showMsg(msg, "Bölge kaydedildi!", true); } catch (err) { console.error("Bölge kaydedilemedi:", err); showMsg(msg, "Kaydedilemedi. Varsayılan olarak kullanılacak.", false); if (onCitySelect) onCitySelect(city); } }); } function setupUpload(container, pb, onBgSelect) { const form = container.querySelector("#uploadForm"); const msg = container.querySelector("#uploadMsg"); if (!form) return; form.addEventListener("submit", async (e) => { e.preventDefault(); const fileInput = container.querySelector("#bgFile"); const titleInput = container.querySelector("#bgTitle"); const file = fileInput?.files?.[0]; if (!file) { showMsg(msg, "Lütfen bir resim seçin.", false); return; } try { await pb.collection("backgrounds").create({ title: titleInput?.value || "Duvar Kağıdı", image: file, }); showMsg(msg, "Arka plan yüklendi!", true); fileInput.value = ""; if (titleInput) titleInput.value = ""; setTimeout(() => { window.location.reload(); }, 800); } catch (err) { console.error("Yükleme hatası:", err); showMsg(msg, "Yükleme başarısız. PocketBase bağlantısını kontrol et.", false); } }); } function setupGallery(container, pb, onBgSelect) { container.querySelectorAll("[data-url]").forEach((card) => { card.addEventListener("click", async () => { const selectedUrl = card.getAttribute("data-url"); try { await pb.collection("users").update(pb.authStore.model.id, { selected_bg: selectedUrl, }); onBgSelect(selectedUrl); } catch (err) { console.error("Ayar kaydedilemedi:", err); } }); }); } function showMsg(el, text, success) { el.textContent = text; el.className = `text-xs mt-2 ${success ? "text-emerald-400" : "text-rose-400"}`; el.classList.remove("hidden"); }