import { Ionicons } from '@expo/vector-icons'; import { Stack, useRouter, useSegments } from 'expo-router'; import { Text, TouchableOpacity } from 'react-native'; import { useColorScheme } from '../hooks/use-color-scheme'; import { AuthProvider, useAuth } from '../src/context/AuthContext'; function DevicesHeader() { const router = useRouter(); const isDark = useColorScheme() === 'dark'; const activityColor = isDark ? '#0A84FF' : '#007AFF'; const { canCreate } = useAuth(); return ( router.push('/scan-devices')} disabled={!canCreate} style={{ paddingHorizontal: 8 }} > ); } function TabsTitle(props: { title: string }) { const segments = useSegments(); const last = segments[segments.length - 1]; const isDark = useColorScheme() === 'dark'; const titleColor = isDark ? '#fff' : '#000'; const title = last === 'settings' ? 'Settings' : props.title; return ( {title} ); } export default function RootLayout() { const isDark = useColorScheme() === 'dark'; const bgColor = isDark ? '#0b0b0d' : '#fff'; const titleColor = isDark ? '#fff' : '#000'; const segments = useSegments(); const last = segments[segments.length - 1]; const isIndex = last === '(tabs)' || last === undefined; return ( {/* Root index that performs auth redirect (app/index.tsx) */} {/* Tabs parent - render tabs with dynamic header */} , headerRight: isIndex ? () => : undefined, headerRightContainerStyle: isIndex ? undefined : { width: 0, paddingRight: 0 }, headerStyle: { backgroundColor: bgColor }, headerTintColor: titleColor, } as any } />{' '} , headerStyle: { backgroundColor: bgColor }, headerBackButtonDisplayMode: 'minimal', }} /> {/* Deep link action handler - no header, immediately redirects */} ); }