"use client"; import React, { useMemo, useState } from "react"; import { useConsent, type ConsentState } from "./ConsentProvider"; export default function ConsentBanner() { const { consent, setConsent } = useConsent(); const [draft, setDraft] = useState({ analytics: false, chat: false }); const [minimized, setMinimized] = useState(false); const locale = useMemo(() => { if (typeof document === "undefined") return "en"; const match = document.cookie .split(";") .map((c) => c.trim()) .find((c) => c.startsWith("NEXT_LOCALE=")); if (!match) return "en"; return decodeURIComponent(match.split("=").slice(1).join("=")) || "en"; }, []); const shouldShow = consent === null; if (!shouldShow) return null; const s = locale === "de" ? { title: "Datenschutz-Einstellungen", description: "Wir nutzen optionale Dienste (Analytics und Chat), um die Seite zu verbessern. Du kannst deine Auswahl jederzeit ändern.", essential: "Essentiell", analytics: "Analytics", chat: "Chatbot", acceptAll: "Alles akzeptieren", acceptSelected: "Auswahl akzeptieren", rejectAll: "Alles ablehnen", } : { title: "Privacy settings", description: "We use optional services (analytics and chat) to improve the site. You can change your choice anytime.", essential: "Essential", analytics: "Analytics", chat: "Chatbot", acceptAll: "Accept all", acceptSelected: "Accept selected", rejectAll: "Reject all", }; if (minimized) { return (
); } return (
{s.title}

{s.description}

{s.essential}
Always on
); }