Bluesky app fork with some witchin' additions 馃挮
at readme-update 53 lines 1.3 kB view raw
1import {StyleSheet} from 'react-native' 2 3import {usePalette} from '#/lib/hooks/usePalette' 4import {toPostLanguages, useLanguagePrefs} from '#/state/preferences/languages' 5import {ToggleButton} from '#/view/com/util/forms/ToggleButton' 6 7export function LanguageToggle({ 8 code2, 9 name, 10 onPress, 11 langType, 12}: { 13 code2: string 14 name: string 15 onPress: () => void 16 langType: 'contentLanguages' | 'postLanguages' 17}) { 18 const pal = usePalette('default') 19 const langPrefs = useLanguagePrefs() 20 21 const values = 22 langType === 'contentLanguages' 23 ? langPrefs.contentLanguages 24 : toPostLanguages(langPrefs.postLanguage) 25 const isSelected = values.includes(code2) 26 27 // enforce a max of 3 selections for post languages 28 let isDisabled = false 29 if (langType === 'postLanguages' && values.length >= 3 && !isSelected) { 30 isDisabled = true 31 } 32 33 return ( 34 <ToggleButton 35 label={name} 36 isSelected={isSelected} 37 onPress={isDisabled ? undefined : onPress} 38 style={[pal.border, styles.languageToggle, isDisabled && styles.dimmed]} 39 /> 40 ) 41} 42 43const styles = StyleSheet.create({ 44 languageToggle: { 45 borderTopWidth: 1, 46 borderRadius: 0, 47 paddingHorizontal: 6, 48 paddingVertical: 12, 49 }, 50 dimmed: { 51 opacity: 0.5, 52 }, 53})