import React from 'react' import {View} from 'react-native' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {NavigationProp} from '#/lib/routes/types' import {isIOS} from '#/platform/detection' import {useSetDrawerOpen} from '#/state/shell' import { atoms as a, TextStyleProp, useBreakpoints, useGutterStyles, useTheme, web, } from '#/alf' import {Button, ButtonIcon} from '#/components/Button' import {ArrowLeft_Stroke2_Corner0_Rounded as ArrowLeft} from '#/components/icons/Arrow' import {Menu_Stroke2_Corner0_Rounded as Menu} from '#/components/icons/Menu' import {Text} from '#/components/Typography' const BUTTON_VISUAL_ALIGNMENT_OFFSET = 3 const BUTTON_SIZE = 34 // small button export function Outer({children}: {children: React.ReactNode}) { const t = useTheme() const gutter = useGutterStyles() const {gtMobile} = useBreakpoints() return ( {children} ) } export function Content({children}: {children: React.ReactNode}) { return ( {children} ) } export function Slot({children}: {children?: React.ReactNode}) { return ( {children} ) } export function BackButton() { const {_} = useLingui() const navigation = useNavigation() const onPressBack = React.useCallback(() => { if (navigation.canGoBack()) { navigation.goBack() } else { navigation.navigate('Home') } }, [navigation]) return ( ) } export function MenuButton() { const {_} = useLingui() const setDrawerOpen = useSetDrawerOpen() const {gtMobile} = useBreakpoints() const onPress = React.useCallback(() => { setDrawerOpen(true) }, [setDrawerOpen]) return gtMobile ? null : ( ) } export function TitleText({ children, style, }: {children: React.ReactNode} & TextStyleProp) { const {gtMobile} = useBreakpoints() return ( {children} ) } export function SubtitleText({children}: {children: React.ReactNode}) { const t = useTheme() return ( {children} ) }