import './style.css' import PocketBase from 'pocketbase' const pb = new PocketBase('https://pocketbase.iontalp.com') const app = document.getElementById('app') async function render() { const user = pb.authStore.model if (user) { // 1. PocketBase'den Arka Plan Resimlerini Çek let bgUrl = 'https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?q=80&w=1920' // Varsayılan görsel try { const records = await pb.collection('backgrounds').getFullList() if (records.length > 0) { // Rastgele bir arka plan seç const randomBg = records[Math.floor(Math.random() * records.length)] bgUrl = pb.files.getURL(randomBg, randomBg.image) } } catch (err) { console.log('Arka plan yüklenirken hata oluştu, varsayılan görsel kullanılıyor.', err) } // 2. Masaüstü Arayüzü (WeTransfer Tarzı Hibrit Tasarım) app.innerHTML = `

Hayırla Geldiniz!

Kendi bulut sunucunda çalışan bağımsız masaüstü panelindesin. Sol menüyü kullanarak navigasyonu yönetebilir veya arka planın tadını çıkarabilirsin.

` // Sidebar Açma / Kapama Mantığı const sidebar = document.getElementById('sidebar') const toggleBtn = document.getElementById('toggleSidebarBtn') const openBtn = document.getElementById('openSidebarBtn') toggleBtn.addEventListener('click', () => { sidebar.classList.add('-translate-x-full', 'absolute') openBtn.classList.remove('hidden') }) openBtn.addEventListener('click', () => { sidebar.classList.remove('-translate-x-full', 'absolute') openBtn.classList.add('hidden') }) document.getElementById('logoutBtn').addEventListener('click', () => { pb.authStore.clear() render() }) } else { // Giriş yapılmamışsa mevcut Login ekranını göster... app.innerHTML = `

Giriş Yap

PocketBase hesabınızla oturum açın

` document.getElementById('loginForm').addEventListener('submit', async (e) => { e.preventDefault() const identity = document.getElementById('identity').value const password = document.getElementById('password').value const errorMsg = document.getElementById('errorMsg') try { errorMsg.classList.add('hidden') await pb.collection('users').authWithPassword(identity, password) render() } catch (err) { errorMsg.textContent = 'Giriş başarısız! E-posta veya şifre hatalı.' errorMsg.classList.remove('hidden') } }) } } render()