import Link from "next/link"; import { ClipboardList, Coins } from "lucide-react"; import { getCurrentUser } from "@/lib/session"; import { ListemButonu } from "@/features/liste/components/listem-butonu"; import { ListeSenkron } from "@/features/liste/components/liste-senkron"; import { RybbitIdentify } from "@/components/rybbit-identify"; import { GirisLinki } from "./giris-linki"; import { SignOutButton } from "./sign-out-button"; /** * Suspense fallback'i: girişsiz görünümle aynı yükseklik/genişlikte sessiz * bir pill — session sorgusu akarken header zıplamasın (CLS yok). */ export function UserNavFallback() { return (
); } export async function UserNav() { const u = await getCurrentUser(); // Manuel liste localStorage'ta yaşadığı için Listem girişsiz de çalışır if (!u) { return (
); } return (
{/* Yapay Zeka raporunun kalıcı kapısı: girişli kullanıcı /listem'i navbar'dan bulamıyordu (çekmece butonu manuel liste boşken hiç görünmüyor). Rapor var mı diye DB'ye sorulmuyor — navbar'ın TTFB'si bozulmasın; liste boşsa sayfadaki ListemBosCta karşılıyor. Sınıf seti kredi pill'iyle birebir aynı (tek kaynak). */} {/* ListemButonu:39 ile aynı görünürlük deseni: 375 px'te ve lg–xl arasında metin gizli, ikon+aria-label anlamı taşıyor. */} Yapay Zeka Listem {u.creditBalance} {/* Etiket yalnızca md–lg arası: daha darda logo kesiliyor, lg üstünde ortadaki nav ile yer dar (konteyner 1152'de sabit). İkon+sayı ve title her genişlikte anlamı taşıyor. */} kredi
); }