import React, { useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useNavigate } from 'react-router-dom'; import { Button, Card } from '../../components/ui'; import { Cookie, CheckCircle, XCircle, Shield, BarChart3, Target, Settings as SettingsIcon } from 'lucide-react'; import { getCookieConsent, saveCookieConsent, getCookieCategories, CookiePreferences } from '../../components/ui/CookieConsent'; import { showToast } from '../../utils/toast'; export const CookiePreferencesPage: React.FC = () => { const { t } = useTranslation(); const navigate = useNavigate(); const [preferences, setPreferences] = useState({ essential: true, analytics: false, marketing: false, preferences: false, timestamp: new Date().toISOString(), version: '1.0' }); useEffect(() => { const existingConsent = getCookieConsent(); if (existingConsent) { setPreferences(existingConsent); } }, []); const handleToggle = (category: keyof Omit) => { if (category === 'essential') return; setPreferences(prev => ({ ...prev, [category]: !prev[category] })); }; const handleSave = () => { const updatedPreferences: CookiePreferences = { ...preferences, timestamp: new Date().toISOString() }; saveCookieConsent(updatedPreferences); showToast.success( t('common:cookie.preferences_saved', 'Your cookie preferences have been saved successfully.'), { title: t('common:cookie.success', 'Preferences Saved') } ); }; const handleAcceptAll = () => { const allEnabled: CookiePreferences = { essential: true, analytics: true, marketing: true, preferences: true, timestamp: new Date().toISOString(), version: '1.0' }; saveCookieConsent(allEnabled); setPreferences(allEnabled); showToast.success( t('common:cookie.all_accepted', 'All cookies have been accepted.'), { title: t('common:cookie.success', 'Preferences Saved') } ); }; const handleRejectAll = () => { const essentialOnly: CookiePreferences = { essential: true, analytics: false, marketing: false, preferences: false, timestamp: new Date().toISOString(), version: '1.0' }; saveCookieConsent(essentialOnly); setPreferences(essentialOnly); showToast.success( t('common:cookie.only_essential', 'Only essential cookies are enabled.'), { title: t('common:cookie.success', 'Preferences Saved') } ); }; const categories = getCookieCategories(); const getCategoryIcon = (categoryId: string) => { switch (categoryId) { case 'essential': return ; case 'preferences': return ; case 'analytics': return ; case 'marketing': return ; default: return ; } }; return (

{t('common:cookie.preferences_title', 'Cookie Preferences')}

{t( 'common:cookie.preferences_description', 'Manage your cookie preferences. You can enable or disable different types of cookies below. Note that blocking some types of cookies may impact your experience on our website.' )}

{categories.map((category) => { const isEnabled = preferences[category.id as keyof Omit]; return (
{getCategoryIcon(category.id)}

{category.name}

{category.required && ( {t('common:cookie.required', 'Required')} )}

{category.description}

{t('common:cookie.examples', 'Examples')}: {category.examples.join(', ')}
); })}

{t('common:cookie.info_title', 'About Cookie Management')}

{t( 'common:cookie.info_description', 'Essential cookies are always enabled to ensure the basic functionality of our website. You can choose to disable other cookie categories, but this may affect certain features. For more information, please read our ' )} {t('common:cookie.cookie_policy', 'Cookie Policy')} {' '} {t('common:cookie.and', 'and')} {' '} {t('common:cookie.privacy_policy', 'Privacy Policy')} .

); }; export default CookiePreferencesPage;