'use client' import { useState, useEffect } from 'react' import { SettingsNav, SettingsSection, SettingToggle, SettingSelect } from '@/components/settings' import { useLanguage } from '@/lib/i18n' import { updateAISettings, getAISettings } from '@/app/actions/ai-settings' import { toast } from 'sonner' export default function GeneralSettingsPage() { const { t, setLanguage: setContextLanguage } = useLanguage() const [language, setLanguage] = useState('auto') const [emailNotifications, setEmailNotifications] = useState(false) const [desktopNotifications, setDesktopNotifications] = useState(false) const [anonymousAnalytics, setAnonymousAnalytics] = useState(false) // Load settings on mount useEffect(() => { async function loadSettings() { try { const settings = await getAISettings() if (settings.preferredLanguage) setLanguage(settings.preferredLanguage) if (settings.emailNotifications !== undefined) setEmailNotifications(settings.emailNotifications) if (settings.desktopNotifications !== undefined) setDesktopNotifications(settings.desktopNotifications) if (settings.anonymousAnalytics !== undefined) setAnonymousAnalytics(settings.anonymousAnalytics) } catch (error) { console.error('Error loading settings:', error) } } loadSettings() }, []) const handleLanguageChange = async (value: string) => { setLanguage(value) // 1. Update database settings await updateAISettings({ preferredLanguage: value as any }) // 2. Update local storage and application state if (value === 'auto') { localStorage.removeItem('user-language') toast.success("Language set to Auto") } else { localStorage.setItem('user-language', value) setContextLanguage(value as any) toast.success(t('profile.languageUpdateSuccess') || "Language updated") } // 3. Force reload to ensure all components update (server components, metadata, etc.) setTimeout(() => window.location.reload(), 500) } const handleEmailNotificationsChange = async (enabled: boolean) => { setEmailNotifications(enabled) await updateAISettings({ emailNotifications: enabled }) } const handleDesktopNotificationsChange = async (enabled: boolean) => { setDesktopNotifications(enabled) await updateAISettings({ desktopNotifications: enabled }) } const handleAnonymousAnalyticsChange = async (enabled: boolean) => { setAnonymousAnalytics(enabled) await updateAISettings({ anonymousAnalytics: enabled }) } return (

{t('generalSettings.title')}

{t('generalSettings.description')}

🌍} description={t('profile.languagePreferencesDescription')} > 🔔} description={t('settings.notifications')} > 🔒} description={t('settings.privacy')} >
) }