import React from 'react' import {observer} from 'mobx-react-lite' import {useStores} from 'state/index' import {usePalette} from 'lib/hooks/usePalette' import {useNavigationState} from '@react-navigation/native' import Animated from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {getCurrentRoute, isTab} from 'lib/routes/helpers' import {styles} from './BottomBarStyles' import {clamp} from 'lib/numbers' import { BellIcon, BellIconSolid, HomeIcon, HomeIconSolid, MagnifyingGlassIcon2, MagnifyingGlassIcon2Solid, HashtagIcon, UserIcon, UserIconSolid, } from 'lib/icons' import {Link} from 'view/com/util/Link' import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode' import {makeProfileLink} from 'lib/routes/links' import {CommonNavigatorParams} from 'lib/routes/types' export const BottomBarWeb = observer(function BottomBarWebImpl() { const store = useStores() const pal = usePalette('default') const safeAreaInsets = useSafeAreaInsets() const {footerMinimalShellTransform} = useMinimalShellMode() return ( {({isActive}) => { const Icon = isActive ? HomeIconSolid : HomeIcon return ( ) }} {({isActive}) => { const Icon = isActive ? MagnifyingGlassIcon2Solid : MagnifyingGlassIcon2 return ( ) }} {({isActive}) => { return ( ) }} {({isActive}) => { const Icon = isActive ? BellIconSolid : BellIcon return ( ) }} {({isActive}) => { const Icon = isActive ? UserIconSolid : UserIcon return ( ) }} ) }) const NavItem: React.FC<{ children: (props: {isActive: boolean}) => React.ReactChild href: string routeName: string }> = ({children, href, routeName}) => { const currentRoute = useNavigationState(state => { if (!state) { return {name: 'Home'} } return getCurrentRoute(state) }) const store = useStores() const isActive = currentRoute.name === 'Profile' ? isTab(currentRoute.name, routeName) && (currentRoute.params as CommonNavigatorParams['Profile']).name === store.me.handle : isTab(currentRoute.name, routeName) return ( {children({isActive})} ) }