feat: Sprint 0 — project scaffold, DB schema, Zustand stores, base UI components
This commit is contained in:
43
app/(tabs)/_layout.tsx
Normal file
43
app/(tabs)/_layout.tsx
Normal file
@@ -0,0 +1,43 @@
|
||||
import { Tabs } from 'expo-router';
|
||||
import { Home, Users, Map, Settings } from 'lucide-react-native';
|
||||
|
||||
export default function TabLayout() {
|
||||
return (
|
||||
<Tabs
|
||||
screenOptions={{
|
||||
tabBarActiveTintColor: '#1A6B72',
|
||||
tabBarInactiveTintColor: '#9CA3AF',
|
||||
headerShown: false,
|
||||
}}
|
||||
>
|
||||
<Tabs.Screen
|
||||
name="index"
|
||||
options={{
|
||||
title: 'Home',
|
||||
tabBarIcon: ({ color, size }) => <Home size={size} color={color} />,
|
||||
}}
|
||||
/>
|
||||
<Tabs.Screen
|
||||
name="contacts"
|
||||
options={{
|
||||
title: 'Contacts',
|
||||
tabBarIcon: ({ color, size }) => <Users size={size} color={color} />,
|
||||
}}
|
||||
/>
|
||||
<Tabs.Screen
|
||||
name="map"
|
||||
options={{
|
||||
title: 'Map',
|
||||
tabBarIcon: ({ color, size }) => <Map size={size} color={color} />,
|
||||
}}
|
||||
/>
|
||||
<Tabs.Screen
|
||||
name="settings"
|
||||
options={{
|
||||
title: 'Settings',
|
||||
tabBarIcon: ({ color, size }) => <Settings size={size} color={color} />,
|
||||
}}
|
||||
/>
|
||||
</Tabs>
|
||||
);
|
||||
}
|
||||
10
app/(tabs)/contacts.tsx
Normal file
10
app/(tabs)/contacts.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { View, Text } from 'react-native';
|
||||
|
||||
export default function ContactsScreen() {
|
||||
return (
|
||||
<View className="flex-1 items-center justify-center bg-secondary">
|
||||
<Text className="text-xl text-charcoal">Contacts</Text>
|
||||
<Text className="text-gray-500 mt-2">Coming in Sprint 1</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
10
app/(tabs)/index.tsx
Normal file
10
app/(tabs)/index.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { View, Text } from 'react-native';
|
||||
|
||||
export default function HomeScreen() {
|
||||
return (
|
||||
<View className="flex-1 items-center justify-center bg-secondary">
|
||||
<Text className="text-2xl font-bold text-primary">TerritoryLog</Text>
|
||||
<Text className="text-charcoal mt-2">Dashboard coming in Sprint 2</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
10
app/(tabs)/map.tsx
Normal file
10
app/(tabs)/map.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { View, Text } from 'react-native';
|
||||
|
||||
export default function MapScreen() {
|
||||
return (
|
||||
<View className="flex-1 items-center justify-center bg-secondary">
|
||||
<Text className="text-xl text-charcoal">Map</Text>
|
||||
<Text className="text-gray-500 mt-2">Coming in Sprint 4</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
10
app/(tabs)/settings.tsx
Normal file
10
app/(tabs)/settings.tsx
Normal file
@@ -0,0 +1,10 @@
|
||||
import { View, Text } from 'react-native';
|
||||
|
||||
export default function SettingsScreen() {
|
||||
return (
|
||||
<View className="flex-1 items-center justify-center bg-secondary">
|
||||
<Text className="text-xl text-charcoal">Settings</Text>
|
||||
<Text className="text-gray-500 mt-2">Coming in Sprint 6</Text>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
11
app/_layout.tsx
Normal file
11
app/_layout.tsx
Normal file
@@ -0,0 +1,11 @@
|
||||
import { Stack } from 'expo-router';
|
||||
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
||||
import '../global.css';
|
||||
|
||||
export default function RootLayout() {
|
||||
return (
|
||||
<GestureHandlerRootView style={{ flex: 1 }}>
|
||||
<Stack screenOptions={{ headerShown: false }} />
|
||||
</GestureHandlerRootView>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user