"use client"; import React, { useState, useEffect, useRef } from "react"; import Link from "next/link"; export default function CookieConsent() { const [visible, setVisible] = useState(false); const acceptRef = useRef(null); useEffect(() => { try { const consent = localStorage.getItem("bb_cookie_consent"); if (!consent) { // Delay slightly so it doesn't flash on first paint const timer = setTimeout(() => setVisible(true), 1200); return () => clearTimeout(timer); } } catch { // localStorage unavailable (SSR or private mode) } }, []); // Focus the accept button when banner appears (accessibility) useEffect(() => { if (visible) { acceptRef?.current?.focus(); } }, [visible]); const handleAccept = () => { try { localStorage.setItem("bb_cookie_consent", "accepted"); } catch {} setVisible(false); }; const handleDecline = () => { try { localStorage.setItem("bb_cookie_consent", "declined"); } catch {} setVisible(false); }; if (!visible) return null; return (
); }