import {useTranslation} from 'react-i18next'; import {SlidersHorizontal} from 'lucide-react'; import {Card, CardContent, CardHeader, CardTitle} from '@/components/ui/card'; import {Label} from '@/components/ui/label'; import {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from '@/components/ui/select'; import {useCurrentUserContext} from '../context/CurrentUserContext.jsx'; import {usePreferences} from '../context/PreferencesContext.jsx'; import usePersistSettings from '../hooks/usePersistSettings.js'; import useSaveResponse from '../hooks/useSaveResponse.js'; import {FAVORITE_PLATFORMS, saveFavoritePlatform} from '../utils/platforms.js'; import {LANGUAGES} from '../utils/settings.js'; // Radix Select has no empty value. const NO_FAVORITE = 'NONE'; export default function PreferencesCard() { const {t, i18n} = useTranslation(); const {user: profile, updateUser: updateProfile} = useCurrentUserContext(); const {setLanguage} = usePreferences(); const persistSettings = usePersistSettings(); const runSave = useSaveResponse(); const handleLanguageChange = async (next) => { const previous = i18n.language; const {ok} = await persistSettings(() => setLanguage(next), {silent: true}); if (!ok) i18n.changeLanguage(previous); }; const handleFavoritePlatformChange = async (value) => { const platform = value === NO_FAVORITE ? null : value; const previous = profile?.settings?.favoritePlatform ?? null; const setPlatform = (next) => updateProfile((p) => ({...p, settings: {...p.settings, favoritePlatform: next}})); setPlatform(platform); if (!await runSave(() => saveFavoritePlatform(platform))) setPlatform(previous); }; return ( {t('SETTINGS.PREFERENCES')}

{t('SETTINGS.FAVORITE_PLATFORM_HINT')}

); }