"use client";
import { useEffect, useState } from "react";
import Link from "next/link";
import { AnimatePresence, motion } from "motion/react";
import { Button } from "@/components/ui";
import { useI18n } from "@/i18n/i18n-provider";
export const COOKIE_CONSENT_KEY = "wabenhain-cookie-consent";
type Consent = "all" | "essential";
export function CookieConsentBanner() {
const { t } = useI18n();
const [visible, setVisible] = useState(false);
useEffect(() => {
// Liest bewusst erst nach dem Mount aus localStorage (Browser-API, im
// SSR-Markup nicht verfuegbar), um einen Hydration-Mismatch zu vermeiden.
const stored = window.localStorage.getItem(COOKIE_CONSENT_KEY);
// eslint-disable-next-line react-hooks/set-state-in-effect -- externe Browser-Quelle (localStorage) einmalig nach dem Mount synchronisieren
if (!stored) setVisible(true);
}, []);
function choose(consent: Consent) {
window.localStorage.setItem(COOKIE_CONSENT_KEY, consent);
setVisible(false);
}
return (
{visible ? (