import { Ionicons } from '@expo/vector-icons' import { Block, Text } from '@share/components' import { Tabs, useRouter } from 'expo-router' import { observer } from 'mobx-react-lite' import React, { useEffect } from 'react' import { useSafeAreaInsets } from 'react-native-safe-area-context' import { Colors } from '@/constants/theme' 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)} > {isActive && ( )} {isActive && ( {label} )} ) } export const BottomNav = ({ currentRoute, onRouteChange }: BottomNavProps) => { const insets = useSafeAreaInsets() return ( {navItems.map((item) => renderNavItem(item, currentRoute === item.id, onRouteChange))} ) } const CustomTabBar = observer(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() { const router = useRouter() useEffect(() => { const timer = setTimeout(() => { router.replace('/(tabs)/sync') }, 100) // 小延迟确保导航准备好 return () => clearTimeout(timer) }, [router]) return }> }