"use client"; // Kullanım ölçümünü (Rybbit) bu tarayıcıda kapatan/açan anahtar — KVKK // md. 11 itiraz hakkının arayüzü, /cerez-politikasi sayfasında durur. // // Rybbit betiği yüklenirken localStorage'da `disable-rybbit` anahtarını // görürse hiçbir şey göndermez (betiğin kendi vazgeçme kapısı). Betik // yüklendikten sonra durdurulamadığı için tercih değişince sayfa yenilenir. import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; const KAPALI_KEY = "disable-rybbit"; // Rybbit'in bu tarayıcıya yazdığı kimlikler; ölçüm kapanınca silinir. const RYBBIT_KIMLIK_KEYLERI = ["rybbit-user-id", "rybbit-visitor-id"]; export function OlcumTercihi() { // null = henüz okunmadı (SSR/ilk boya) const [kapali, setKapali] = useState(null); const [hata, setHata] = useState(false); useEffect(() => { try { // eslint-disable-next-line react-hooks/set-state-in-effect setKapali(localStorage.getItem(KAPALI_KEY) !== null); } catch { setKapali(false); } }, []); function degistir() { try { if (kapali) { localStorage.removeItem(KAPALI_KEY); } else { localStorage.setItem(KAPALI_KEY, "1"); for (const k of RYBBIT_KIMLIK_KEYLERI) localStorage.removeItem(k); } } catch { setHata(true); return; } window.location.reload(); } return (

{kapali ? "Ölçüm bu tarayıcıda kapalı" : "Ölçüm bu tarayıcıda açık"}

{hata ? "Tarayıcın bu tercihi saklamaya izin vermiyor." : kapali ? "Ziyaretlerin sayılmıyor. Site aynı şekilde çalışır." : "Kapatırsan ziyaretlerin sayılmaz; site aynı şekilde çalışır."}

); }