import { useState, useEffect } from 'react'; import { Button } from '@/components/ui/button'; import { Cookie, X, ChevronDown, ChevronUp } from 'lucide-react'; interface CookiePreferences { necessary: boolean; analytics: boolean; marketing: boolean; } const CookieConsent = () => { const [isVisible, setIsVisible] = useState(false); const [showDetails, setShowDetails] = useState(false); const [preferences, setPreferences] = useState({ necessary: true, analytics: false, marketing: false, }); useEffect(() => { // Check if user already consented const consent = localStorage.getItem('cookie-consent'); if (!consent) { // Show after 2 seconds const timer = setTimeout(() => setIsVisible(true), 2000); return () => clearTimeout(timer); } }, []); const handleAcceptAll = () => { const allAccepted: CookiePreferences = { necessary: true, analytics: true, marketing: true, }; setPreferences(allAccepted); saveConsent(allAccepted); }; const handleAcceptSelected = () => { saveConsent(preferences); }; const handleRejectAll = () => { const onlyNecessary: CookiePreferences = { necessary: true, analytics: false, marketing: false, }; setPreferences(onlyNecessary); saveConsent(onlyNecessary); }; const saveConsent = (prefs: CookiePreferences) => { localStorage.setItem('cookie-consent', JSON.stringify(prefs)); setIsVisible(false); // Enable/disable tracking based on consent if (prefs.analytics) { // Enable GA4 (window as any).gtag?.('consent', 'update', { analytics_storage: 'granted', }); } else { (window as any).gtag?.('consent', 'update', { analytics_storage: 'denied', }); } if (prefs.marketing) { // Enable Google Ads (window as any).gtag?.('consent', 'update', { ad_storage: 'granted', ad_user_data: 'granted', ad_personalization: 'granted', }); } else { (window as any).gtag?.('consent', 'update', { ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied', }); } }; const togglePreference = (key: keyof CookiePreferences) => { if (key === 'necessary') return; // Always required setPreferences((prev) => ({ ...prev, [key]: !prev[key] })); }; if (!isVisible) return null; return (
{/* Icon */}
{/* Content */}

Este site utiliza cookies

Utilizamos cookies para melhorar sua experiencia, analisar trafego e personalizar conteudo. Voce pode aceitar todos ou gerenciar suas preferencias.{' '} Politica de Privacidade

{/* Buttons */}
{/* Details Panel */} {showDetails && (
{[ { key: 'necessary' as const, title: 'Cookies Necessarios', description: 'Essenciais para o funcionamento do site. Nao podem ser desativados.', required: true, }, { key: 'analytics' as const, title: 'Cookies de Analytics', description: 'Google Analytics - Ajuda a entender como voce usa o site.', required: false, }, { key: 'marketing' as const, title: 'Cookies de Marketing', description: 'Google Ads - Permite anuncios relevantes e remarketing.', required: false, }, ].map((cookie) => (

{cookie.title}

{cookie.description}

)}
); }; export default CookieConsent;