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,
},
})