import React from 'react' import { Tabs } from 'expo-router' import { Text, Block } from '@share/components' import { Colors } from '@/constants/theme' import { Ionicons } from '@expo/vector-icons' import { useSafeAreaInsets } from 'react-native-safe-area-context' interface BottomNavProps { currentRoute: string onRouteChange: (route: string) => void theme?: 'light' | 'dark' } const navItems = [ { id: 'index', label: '探索', iconName: 'compass-outline' }, { id: 'generate', label: '生成', iconName: 'image-outline' }, { id: 'sync', label: '同步', iconName: 'refresh' }, { id: 'explore', label: '蓝牙调试', iconName: 'person-outline' }, ] function renderNavItem(item: (typeof navItems)[0], isActive: boolean, onRouteChange: (route: string) => void) { const { id, label, iconName } = item return ( onRouteChange(id)} className={`relative h-[48px] flex-1 flex-row items-center justify-center rounded-[9999px] ${isActive ? 'flex-[1.4]' : ''}`} > {isActive && } {isActive && ( {label} )} ) } export const BottomNav: React.FC = ({ currentRoute, onRouteChange }) => { const insets = useSafeAreaInsets() return ( {navItems.map((item) => renderNavItem(item, currentRoute === item.id, onRouteChange))} ) } function CustomTabBar(props: any) { const routes = props.state.routes const activeIndex: number = props.state.index const activeRouteName = routes[activeIndex]?.name || 'index' const handleChange = (route: string) => { props.navigation.navigate(route) } return } export default function Layout() { return } screenOptions={{ headerShown: false }}> }