88 lines
2.5 KiB
TypeScript
88 lines
2.5 KiB
TypeScript
import { Tabs, Redirect } from 'expo-router'
|
|
import { Platform } from 'react-native'
|
|
import { Ionicons } from '@expo/vector-icons'
|
|
import { useAuthStore } from '@/store/auth.store'
|
|
|
|
export default function AppLayout() {
|
|
const session = useAuthStore((s) => s.session)
|
|
|
|
if (!session) {
|
|
return <Redirect href="/(auth)/login" />
|
|
}
|
|
|
|
return (
|
|
<Tabs
|
|
screenOptions={{
|
|
tabBarActiveTintColor: '#003B7E',
|
|
tabBarInactiveTintColor: '#64748B',
|
|
tabBarStyle: {
|
|
borderTopWidth: 1,
|
|
borderTopColor: '#E2E8F0',
|
|
backgroundColor: '#FFFFFF',
|
|
height: Platform.OS === 'ios' ? 88 : 64,
|
|
paddingBottom: Platform.OS === 'ios' ? 28 : 8,
|
|
paddingTop: 8,
|
|
},
|
|
tabBarLabelStyle: {
|
|
fontSize: 11,
|
|
fontWeight: '600',
|
|
letterSpacing: 0.1,
|
|
},
|
|
headerShown: false,
|
|
}}
|
|
>
|
|
<Tabs.Screen
|
|
name="home/index"
|
|
options={{
|
|
title: 'Start',
|
|
tabBarIcon: ({ color, focused }) => (
|
|
<Ionicons name={focused ? 'home' : 'home-outline'} size={23} color={color} />
|
|
),
|
|
}}
|
|
/>
|
|
<Tabs.Screen
|
|
name="news/index"
|
|
options={{
|
|
title: 'Aktuelles',
|
|
tabBarIcon: ({ color, focused }) => (
|
|
<Ionicons name={focused ? 'newspaper' : 'newspaper-outline'} size={23} color={color} />
|
|
),
|
|
}}
|
|
/>
|
|
<Tabs.Screen
|
|
name="termine/index"
|
|
options={{
|
|
title: 'Termine',
|
|
tabBarIcon: ({ color, focused }) => (
|
|
<Ionicons name={focused ? 'calendar' : 'calendar-outline'} size={23} color={color} />
|
|
),
|
|
}}
|
|
/>
|
|
<Tabs.Screen
|
|
name="stellen/index"
|
|
options={{
|
|
title: 'Stellen',
|
|
tabBarIcon: ({ color, focused }) => (
|
|
<Ionicons name={focused ? 'briefcase' : 'briefcase-outline'} size={23} color={color} />
|
|
),
|
|
}}
|
|
/>
|
|
<Tabs.Screen
|
|
name="profil/index"
|
|
options={{
|
|
title: 'Profil',
|
|
tabBarIcon: ({ color, focused }) => (
|
|
<Ionicons name={focused ? 'person' : 'person-outline'} size={23} color={color} />
|
|
),
|
|
}}
|
|
/>
|
|
|
|
<Tabs.Screen name="members/index" options={{ href: null }} />
|
|
<Tabs.Screen name="news/[id]" options={{ href: null }} />
|
|
<Tabs.Screen name="members/[id]" options={{ href: null }} />
|
|
<Tabs.Screen name="termine/[id]" options={{ href: null }} />
|
|
<Tabs.Screen name="stellen/[id]" options={{ href: null }} />
|
|
</Tabs>
|
|
)
|
|
}
|