import { useBreakpointValue } from 'native-base'; import { View } from 'react-native'; import TabNavigationDesktop from './TabNavigationDesktop'; import TabNavigationPhone from './TabNavigationPhone'; import { Ionicons } from '@expo/vector-icons'; import React, { useState } from 'react'; import useColorScheme from '../../hooks/colorScheme'; import HomeView from '../../views/V2/HomeView'; export type NaviTab = { id: string; label: string; icon?: React.ReactNode; onPress?: () => void; onLongPress?: () => void; isActive?: boolean; isCollapsed?: boolean; iconName?: string; }; const tabs = [ { id: 'home', label: 'Discovery', icon: , iconName: 'search', }, { id: 'profile', label: 'Profile', icon: , iconName: 'person', }, { id: 'music', label: 'Music', icon: , iconName: 'musical-notes', }, { id: 'search', label: 'Search', icon: , iconName: 'search', }, { id: 'notifications', label: 'Notifications', icon: , iconName: 'notifications', }, { id: 'settings', label: 'Settings', icon: , iconName: 'settings', }, ] as NaviTab[]; const TabNavigation = () => { const screenSize = useBreakpointValue({ base: 'small', md: 'big' }); const [isDesktopCollapsed, setIsDesktopCollapsed] = useState(false); const [activeTab, setActiveTab] = useState(tabs[0]?.id ?? 'home'); const colorScheme = useColorScheme(); const child = ; const appTabs = tabs.map((t) => { // use the same instance of a component between desktop and mobile return { ...t, onPress: () => setActiveTab(t.id), icon: ( ), }; }); return ( {screenSize === 'small' ? ( {child} ) : ( {child} )} ); }; export default TabNavigation;