import React from 'react' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' import {sanitizeAppLanguageSetting} from '#/locale/helpers' import {APP_LANGUAGES} from '#/locale/languages' import {useLanguagePrefs, useLanguagePrefsApi} from '#/state/preferences' import {resetPostsFeedQueries} from '#/state/queries/post-feed' import {atoms as a, platform, useTheme} from '#/alf' import * as Select from '#/components/Select' import {Button} from './Button' export function AppLanguageDropdown() { const t = useTheme() const {_} = useLingui() const queryClient = useQueryClient() const langPrefs = useLanguagePrefs() const setLangPrefs = useLanguagePrefsApi() const sanitizedLang = sanitizeAppLanguageSetting(langPrefs.appLanguage) const onChangeAppLanguage = React.useCallback( (value: string) => { if (!value) return if (sanitizedLang !== value) { setLangPrefs.setAppLanguage(sanitizeAppLanguageSetting(value)) } // reset feeds to refetch content resetPostsFeedQueries(queryClient) }, [sanitizedLang, setLangPrefs, queryClient], ) return ( {({props}) => ( )} ( {label} )} items={APP_LANGUAGES.map(l => ({ label: l.name, value: l.code2, }))} /> ) }