import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {LANG_DROPDOWN_HITSLOP} from '#/lib/constants' import {codeToLanguageName} from '#/locale/helpers' import { toPostLanguages, useLanguagePrefs, useLanguagePrefsApi, } from '#/state/preferences/languages' import {atoms as a, useTheme} from '#/alf' import {Button, type ButtonProps} from '#/components/Button' import * as Dialog from '#/components/Dialog' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRightIcon} from '#/components/icons/Chevron' import {Globe_Stroke2_Corner0_Rounded as GlobeIcon} from '#/components/icons/Globe' import * as Menu from '#/components/Menu' import {Text} from '#/components/Typography' import {PostLanguageSelectDialog} from './PostLanguageSelectDialog' export function PostLanguageSelect() { const {_} = useLingui() const langPrefs = useLanguagePrefs() const setLangPrefs = useLanguagePrefsApi() const languageDialogControl = Dialog.useDialogControl() const dedupedHistory = Array.from( new Set([...langPrefs.postLanguageHistory, langPrefs.postLanguage]), ) if ( dedupedHistory.length === 1 && dedupedHistory[0] === langPrefs.postLanguage ) { return ( <> ) } return ( <> {({props}) => } {dedupedHistory.map(historyItem => { const langCodes = historyItem.split(',') const langName = langCodes .map(code => codeToLanguageName(code, langPrefs.appLanguage)) .join(' + ') return ( setLangPrefs.setPostLanguage(historyItem)}> {langName} ) })} More languages... ) } function LanguageBtn(props: Omit) { const {_} = useLingui() const langPrefs = useLanguagePrefs() const t = useTheme() const postLanguagesPref = toPostLanguages(langPrefs.postLanguage) return ( ) }