import GracefullyImage from '@components/GracefullyImage' import Icon from '@components/Icon' import haptics from '@components/haptics' import { createBottomTabNavigator } from '@react-navigation/bottom-tabs' import { ScreenTabsStackParamList } from '@utils/navigation/navigators' import { getGlobalStorage, getReadableAccounts, setAccount, useAccountStorage, useGlobalStorage } from '@utils/storage/actions' import { useTheme } from '@utils/styles/ThemeManager' import { StyleConstants } from '@utils/styles/constants' import React from 'react' import { Platform, View } from 'react-native' import * as ContextMenu from 'zeego/context-menu' import TabLocal from './Local' import TabMe from './Me' import TabNotifications from './Notifications' import TabPublic from './Public' const Tab = createBottomTabNavigator() const ScreenTabs = () => { const { colors } = useTheme() const [accountActive] = useGlobalStorage.string('account.active') const [avatarStatic] = useAccountStorage.string('auth.account.avatar_static') return ( ({ headerShown: false, tabBarActiveTintColor: colors.primaryDefault, tabBarInactiveTintColor: colors.secondary, tabBarShowLabel: false, ...(Platform.OS === 'android' && { tabBarHideOnKeyboard: true }), tabBarStyle: { display: accountActive ? 'flex' : 'none' }, tabBarIcon: ({ focused, color, size }: { focused: boolean color: string size: number }) => { switch (route.name) { case 'Tab-Local': return case 'Tab-Public': return case 'Tab-Compose': return case 'Tab-Notifications': return case 'Tab-Me': return ( <> {() => ( )} {getReadableAccounts().map(account => ( { if (!account.active) { await setAccount(account.key) } }} > ))} ) default: return } } })} > ({ tabPress: e => { e.preventDefault() haptics('Light') navigation.navigate('Screen-Compose') } })} > {() => null} ) } export default ScreenTabs