import React from 'react' import {StyleSheet, View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useFocusEffect} from '@react-navigation/native' import {useAnalytics} from '#/lib/analytics/analytics' import {usePalette} from '#/lib/hooks/usePalette' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' import {s} from '#/lib/styles' import {isNative} from '#/platform/detection' import { useAutoplayDisabled, useHapticsDisabled, useRequireAltTextEnabled, useSetAutoplayDisabled, useSetHapticsDisabled, useSetRequireAltTextEnabled, } from '#/state/preferences' import { useLargeAltBadgeEnabled, useSetLargeAltBadgeEnabled, } from '#/state/preferences/large-alt-badge' import {useSetMinimalShellMode} from '#/state/shell' import {ToggleButton} from '#/view/com/util/forms/ToggleButton' import {SimpleViewHeader} from '#/view/com/util/SimpleViewHeader' import {Text} from '#/view/com/util/text/Text' import {ScrollView} from '#/view/com/util/Views' type Props = NativeStackScreenProps< CommonNavigatorParams, 'AccessibilitySettings' > export function AccessibilitySettingsScreen({}: Props) { const pal = usePalette('default') const setMinimalShellMode = useSetMinimalShellMode() const {screen} = useAnalytics() const {isMobile} = useWebMediaQueries() const {_} = useLingui() const requireAltTextEnabled = useRequireAltTextEnabled() const setRequireAltTextEnabled = useSetRequireAltTextEnabled() const autoplayDisabled = useAutoplayDisabled() const setAutoplayDisabled = useSetAutoplayDisabled() const hapticsDisabled = useHapticsDisabled() const setHapticsDisabled = useSetHapticsDisabled() const largeAltBadgeEnabled = useLargeAltBadgeEnabled() const setLargeAltBadgeEnabled = useSetLargeAltBadgeEnabled() useFocusEffect( React.useCallback(() => { screen('PreferencesExternalEmbeds') setMinimalShellMode(false) }, [screen, setMinimalShellMode]), ) return ( Accessibility Settings Alt text setRequireAltTextEnabled(!requireAltTextEnabled)} /> setLargeAltBadgeEnabled(!largeAltBadgeEnabled)} /> Media setAutoplayDisabled(!autoplayDisabled)} /> {isNative && ( <> Haptics setHapticsDisabled(!hapticsDisabled)} /> )} ) } const styles = StyleSheet.create({ heading: { paddingHorizontal: 18, paddingTop: 14, paddingBottom: 6, }, toggleCard: { paddingVertical: 8, paddingHorizontal: 6, marginBottom: 1, }, })