forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
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})