import React from 'react' import { TouchableWithoutFeedback, StyleProp, StyleSheet, View, ViewStyle, } from 'react-native' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' import {useNavigation} from '@react-navigation/native' import {ModerationUI} from '@atproto/api' import {usePalette} from 'lib/hooks/usePalette' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {NavigationProp} from 'lib/routes/types' import {Text} from '../text/Text' import {Button} from '../forms/Button' import {describeModerationCause} from 'lib/moderation' import {useModalControls} from '#/state/modals' export function ScreenHider({ testID, screenDescription, moderation, style, containerStyle, children, }: React.PropsWithChildren<{ testID?: string screenDescription: string moderation: ModerationUI style?: StyleProp containerStyle?: StyleProp }>) { const pal = usePalette('default') const palInverted = usePalette('inverted') const [override, setOverride] = React.useState(false) const navigation = useNavigation() const {isMobile} = useWebMediaQueries() const {openModal} = useModalControls() if (!moderation.blur || override) { return ( {children} ) } const desc = describeModerationCause(moderation.cause, 'account') return ( Content Warning This {screenDescription} has been flagged:{' '} {desc.name} .{' '} { openModal({ name: 'moderation-details', context: 'account', moderation, }) }} accessibilityRole="button" accessibilityLabel="Learn more about this warning" accessibilityHint=""> Learn More {isMobile && } {!moderation.noOverride && ( )} ) } const styles = StyleSheet.create({ spacer: { flex: 1, }, container: { flex: 1, paddingTop: 100, paddingBottom: 150, }, iconContainer: { alignItems: 'center', marginBottom: 10, }, icon: { borderRadius: 25, width: 50, height: 50, alignItems: 'center', justifyContent: 'center', }, title: { textAlign: 'center', marginBottom: 10, }, description: { marginBottom: 10, paddingHorizontal: 20, textAlign: 'center', }, btnContainer: { flexDirection: 'row', justifyContent: 'center', marginVertical: 10, gap: 10, }, btn: { paddingHorizontal: 20, paddingVertical: 14, }, })