From ee3e08393882a9d72ae9cab5f765ed2885c5a98d Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 5 Sep 2025 18:34:00 +0300 Subject: Restore quick language select (#8981) * restore quick language select * rm showCancel * rm margin from thread button * alf composer icons * stop hiding keyboard * use trans --- .../select-language/PostLanguageSelect.tsx | 131 +++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 src/view/com/composer/select-language/PostLanguageSelect.tsx (limited to 'src/view/com/composer/select-language/PostLanguageSelect.tsx') diff --git a/src/view/com/composer/select-language/PostLanguageSelect.tsx b/src/view/com/composer/select-language/PostLanguageSelect.tsx new file mode 100644 index 000000000..6291e8422 --- /dev/null +++ b/src/view/com/composer/select-language/PostLanguageSelect.tsx @@ -0,0 +1,131 @@ +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 ( + + ) +} -- cgit 1.4.1