import { unwrap } from '@pipu/core'; import { SUPPORTED_LOCALES, type Locale } from '@pipu/i18n'; import { useTranslation } from 'react-i18next'; import { useAuthState, useSession } from '../app/session'; import { Segmented } from '../shared/ui/ui'; /** Переключатель языка. Для вошедшего пользователя язык сохраняется в профиле (PATCH /me). */ export function LanguageSwitch() { const { t, i18n } = useTranslation(); const session = useSession(); const auth = useAuthState(); const change = async (l: Locale) => { document.documentElement.lang = l; await i18n.changeLanguage(l); if (auth.status !== 'signed_in') return; try { session.setUser(unwrap(await session.client.PATCH('/api/v1/me', { body: { locale: l } }))); } catch { // Язык уже переключён локально; сохранится при следующей смене. } }; return ( ({ value: l, label: l.toUpperCase() }))} onChange={(l) => void change(l)} /> ); }