import {useContext} from 'react' import {type GestureResponderEvent, View} from 'react-native' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {HITSLOP_30} from '#/lib/constants' import {Logomark} from '#/view/icons/Logomark' import {atoms as a, platform, useGutters, useTheme} from '#/alf' import {Button, ButtonIcon, type ButtonProps} from '#/components/Button' import {ArrowLeft_Stroke2_Corner0_Rounded as ArrowLeft} from '#/components/icons/Arrow' import { BUTTON_VISUAL_ALIGNMENT_OFFSET, Header, HEADER_SLOT_SIZE, } from '#/components/Layout' import {IS_WEB} from '#/env' import {AuthLayoutNavigationContext} from '../context' /** * This is a simplified version of `Layout.Header` for the auth screens. */ export const Slot = Header.Slot export function Outer({children}: {children: React.ReactNode}) { const t = useTheme() const gutters = useGutters([0, 'wide']) return ( {children} ) } export function Content({children}: {children?: React.ReactNode}) { return ( {IS_WEB ? children : } ) } export function Logo() { const t = useTheme() return } export function BackButton({onPress, style, ...props}: Partial) { const {_} = useLingui() const navigation = useContext(AuthLayoutNavigationContext) const onPressBack = (evt: GestureResponderEvent) => { onPress?.(evt) if (evt.defaultPrevented) return navigation?.goBack() } return ( ) }