import React, {useState} from 'react' import {ScrollView, StyleSheet, TouchableOpacity, View} from 'react-native' import {observer} from 'mobx-react-lite' import {Slider} from '@miblanchard/react-native-slider' import {Text} from '../com/util/text/Text' import {useStores} from 'state/index' import {s, colors} from 'lib/styles' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {isWeb} from 'platform/detection' import {ToggleButton} from 'view/com/util/forms/ToggleButton' import {CommonNavigatorParams, NativeStackScreenProps} from 'lib/routes/types' import {ViewHeader} from 'view/com/util/ViewHeader' import {CenteredView} from 'view/com/util/Views' function RepliesThresholdInput({enabled}: {enabled: boolean}) { const store = useStores() const pal = usePalette('default') const [value, setValue] = useState(store.preferences.homeFeedRepliesThreshold) return ( {value === 0 ? `Show all replies` : `Show replies with at least ${value} ${ value > 1 ? `likes` : `like` }`} { const threshold = Math.floor(Array.isArray(v) ? v[0] : v) setValue(threshold) store.preferences.setHomeFeedRepliesThreshold(threshold) }} minimumValue={0} maximumValue={25} containerStyle={isWeb ? undefined : s.flex1} disabled={!enabled} thumbTintColor={colors.blue3} /> ) } type Props = NativeStackScreenProps< CommonNavigatorParams, 'PreferencesHomeFeed' > export const PreferencesHomeFeed = observer(({navigation}: Props) => { const pal = usePalette('default') const store = useStores() const {isTabletOrDesktop} = useWebMediaQueries() return ( Fine-tune the content you see on your home screen. Show Replies Adjust the number of likes a reply must have to be shown in your feed. Show Reposts Set this setting to "No" to hide all reposts from your feed. Show Quote Posts Set this setting to "No" to hide all quote posts from your feed. Reposts will still be visible. { navigation.canGoBack() ? navigation.goBack() : navigation.navigate('Settings') }} style={[styles.btn, isTabletOrDesktop && styles.btnDesktop]} accessibilityRole="button" accessibilityLabel="Confirm" accessibilityHint=""> Done ) }) const styles = StyleSheet.create({ container: { flex: 1, paddingBottom: 90, }, desktopContainer: { borderLeftWidth: 1, borderRightWidth: 1, paddingBottom: 40, }, titleSection: { paddingBottom: 30, }, title: { textAlign: 'center', marginBottom: 5, }, description: { textAlign: 'center', paddingHorizontal: 32, }, cardsContainer: { paddingHorizontal: 20, }, card: { padding: 16, borderRadius: 10, marginBottom: 20, }, btn: { flexDirection: 'row', alignItems: 'center', justifyContent: 'center', borderRadius: 32, padding: 14, backgroundColor: colors.blue3, }, btnDesktop: { marginHorizontal: 'auto', paddingHorizontal: 80, }, btnContainer: { paddingTop: 20, }, dimmed: { opacity: 0.3, }, })