"use client"; // İlk ziyarette bir kez görünen çerez bilgilendirmesi. Onay penceresi DEĞİL: // sitede açık rıza gerektiren çerez yok (zorunlu çerezler + kendi // sunucumuzdaki ölçüm; bkz. /cerez-politikasi). KVKK Çerez Rehberi (Temmuz // 2025) §9, veri işleme şartından bağımsız olarak siteye girişte // bilgilendirme bekliyor; bu bant onu karşılar. Kabul/ret düğmesi yoktur, // çünkü sorulan bir rıza yoktur — ölçümü kapatma anahtarı politika // sayfasındadır. Kapatma kalıcıdır (localStorage). import { useEffect, useState } from "react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { Button } from "@/components/ui/button"; import { ViewportPortal } from "@/components/viewport-portal"; import { kromGizliMi } from "@/components/header-gate"; const GORULDU_KEY = "kolaytercih.cerez-bilgi"; export function CerezBilgi() { const pathname = usePathname(); // SSR/ilk boyada gizli başla; durum mount'ta okunur. const [goruldu, setGoruldu] = useState(true); useEffect(() => { try { // eslint-disable-next-line react-hooks/set-state-in-effect setGoruldu(Boolean(localStorage.getItem(GORULDU_KEY))); } catch { // Depolama kapalıysa "görüldü" saklanamaz; her sayfada çıkmasın. setGoruldu(true); } }, []); if (goruldu) return null; // Giriş/ödeme gibi kromsuz akışlarda ve politikanın kendisinde gösterilmez. if (pathname && kromGizliMi(pathname)) return null; if (pathname === "/cerez-politikasi") return null; function kapat() { setGoruldu(true); try { localStorage.setItem(GORULDU_KEY, "1"); } catch {} } return ( {/* z-45: KaydetBanner'ın (z-40) üstünde, modalların (z-50) altında */}

Bu sitede reklam ya da izleme çerezi yok. Yalnız oturumun ve listen için gerekli çerezleri ve kendi sunucumuzda çalışan çerezsiz ziyaret ölçümünü kullanıyoruz.{" "} Ayrıntılar ve ölçümü kapatma

); }