diff --git a/components/ui/CookieBanner.tsx b/components/ui/CookieBanner.tsx index a976cbf..7c6e48b 100644 --- a/components/ui/CookieBanner.tsx +++ b/components/ui/CookieBanner.tsx @@ -1,75 +1,193 @@ "use client"; -import { useState, useEffect } from "react"; +import { useState } from "react"; import Link from "next/link"; -import { Cookie, X } from "lucide-react"; - +import { Cookie, X, Check, Settings2, Info } from "lucide-react"; +import { useConsentStore } from "@/lib/consent-store"; export function CookieBanner() { - const [showBanner, setShowBanner] = useState(false); + const { + isInitialized, + isOpen, + analytics, + marketing, + setConsent, + acceptAll, + rejectOptional, + closeBanner + } = useConsentStore(); - useEffect(() => { - // Check if the user has already accepted cookies - const consent = localStorage.getItem("airproject_cookie_consent"); - if (!consent) { - setShowBanner(true); - } - }, []); + const [showSettings, setShowSettings] = useState(false); + const [localAnalytics, setLocalAnalytics] = useState(true); + const [localMarketing, setLocalMarketing] = useState(true); - const acceptCookies = () => { - localStorage.setItem("airproject_cookie_consent", "true"); - setShowBanner(false); + if (!isInitialized || !isOpen) return null; + + const handleSaveSettings = () => { + setConsent(localAnalytics, localMarketing); + setShowSettings(false); }; - if (!showBanner) return null; + const handleOpenSettings = () => { + const hasConsent = localStorage.getItem('airproject_cookie_consent_v2'); + setLocalAnalytics(hasConsent ? analytics : true); + setLocalMarketing(hasConsent ? marketing : true); + setShowSettings(true); + }; return ( -
-
-
-
- +
+
+ + {/* WIDOK GŁÓWNY BANERA */} + {!showSettings && ( +
+
+
+ +
+ +
+

+ + Szanujemy Twoją prywatność +

+

+ Używamy plików cookies i podobnych technologii, by zapewnić prawidłowe działanie serwisu, personalizować treści oraz analizować ruch. + Możesz zaakceptować wszystkie ciasteczka, odrzucić opcjonalne lub dostosować zgody w ustawieniach. + Szczegóły znajdziesz w naszej{" "} + + Polityce Prywatności + . +

+ +
+ + +
+ +
+
+
+ + {/* Przycisk zamknięcia wymusza "Tylko niezbędne" dla bezpieczeństwa */} +
-
-

- Dbamy o Twoją prywatność -

-

- Nasz serwis używa plików cookies (ciasteczek) w celach statystycznych (m.in. Google Analytics, Google Tag Manager) oraz prawidłowego działania strony. - Możesz określić warunki przechowywania cookies w swojej przeglądarce. Dowiedz się więcej w naszej{" "} - +

+

+ + Ustawienia plików cookies +

+ +
+ +
+ {/* Niezbędne */} +
+
+ +
+
+

+ Niezbędne Zawsze aktywne +

+

+ Te pliki cookies są wymagane do podstawowego działania strony (np. nawigacja, sesja koszyka, zapisywanie tych preferencji). Nie można ich wyłączyć. +

+
+
+ + {/* Analityczne */} +
+
+ setLocalAnalytics(e.target.checked)} + /> +
+
+

Analityczne (Google Analytics 4)

+

+ Pozwalają nam badać statystyki ruchu na stronie, rozumieć jak Użytkownicy z niej korzystają i na tej podstawie optymalizować jej działanie. +

+
+
+ + {/* Marketingowe */} +
+
+ setLocalMarketing(e.target.checked)} + /> +
+
+

Marketingowe (Google Tag Manager)

+

+ Pozwalają nam dopasowywać treści reklamowe do Twoich zainteresowań w sieci (np. w systemach Google Ads, Facebook Ads) oraz mierzyć skuteczność kampanii. +

+
+
+
+ +
+ + + +
-
- -
- - -
- - {/* Zamknięcie na desktop */} - + )} +
);