import {View} from 'react-native' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' import {atoms as a} from '#/alf' import {Admonition} from '#/components/Admonition' import {AgeAssuranceBadge} from '#/components/ageAssurance/AgeAssuranceBadge' import {AgeAssuranceConfigUnavailableError} from '#/components/ageAssurance/AgeAssuranceErrors' import {useAgeAssuranceCopy} from '#/components/ageAssurance/useAgeAssuranceCopy' import {ButtonIcon, ButtonText} from '#/components/Button' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' import * as Layout from '#/components/Layout' import {Link} from '#/components/Link' import {Text} from '#/components/Typography' import {useAgeAssurance} from '#/ageAssurance' import {useAnalytics} from '#/analytics' export function AgeRestrictedScreen({ children, screenTitle, infoText, rightHeaderSlot, }: { children: React.ReactNode screenTitle?: string infoText?: string rightHeaderSlot?: React.ReactNode }) { const {_} = useLingui() const ax = useAnalytics() const copy = useAgeAssuranceCopy() const aa = useAgeAssurance() if (aa.state.access === aa.Access.Full) return children return ( {screenTitle ?? Unavailable} {rightHeaderSlot ?? } {aa.state.error === 'config' && ( )} We're sorry, you cannot access this screen at this time. {copy.notice} { ax.metric('ageAssurance:navigateToSettings', {}) }}> Go to account settings {infoText && {infoText}} ) }