import { useRouter } from 'expo-router' import { useAtomValue } from 'jotai' import { StyleSheet, Platform, View } from 'react-native' import { useSafeAreaInsets } from 'react-native-safe-area-context' import { CompanyLogo } from './CompanyLogo' import { ThemeSwitcherButton } from './ThemeSwitcherButton' import { useColorScheme } from '@/contexts' import { Box, Button, Icon, Pressable, Row, Spacer, Touchable } from '@/design-system' import { useFullScreenModal } from '@/design-system/modals/useFullScreenModal' import { useCallback, useMemo, useTheme, useTranslation } from '@/hooks' import { useUniversalWidth } from '@/navigation/tabNavigator/hooks' import { isSignedInAtom } from '@/store/auth' export function LandingHeader() { const { colorScheme } = useColorScheme() const { colors } = useTheme() const { top } = useSafeAreaInsets() const { t } = useTranslation() const { push, canGoBack, back } = useRouter() const height = 60 + top const isDesktop = useUniversalWidth(768) const isSignedIn = useAtomValue(isSignedInAtom) const navigateToLogin = useCallback(() => push('/sign-in'), [push]) const navigateToSignUp = useCallback(() => push('/sign-up'), [push]) const { closeFullScreenModal, modalComponentRenderFunction, presentFullScreenModal } = useFullScreenModal() const renderLeftMenu = useMemo(() => { return canGoBack() ? ( ) : ( ) }, [back, canGoBack, colorScheme]) const fullScreenModal = modalComponentRenderFunction( {renderLeftMenu} ) const renderRightMenu = useMemo(() => { if (isSignedIn) { return } if (isDesktop) { return ( ) } return ( ) }, [isDesktop, isSignedIn, navigateToLogin, navigateToSignUp, presentFullScreenModal, t]) return ( <> {renderLeftMenu} {renderRightMenu} {fullScreenModal} ) } const jsStyles = StyleSheet.create({ appHeader: { alignItems: 'center', borderBottomWidth: 1, flexDirection: 'row', justifyContent: 'space-between', paddingHorizontal: 16, width: '100%', zIndex: 10, }, })