feat: Sprint 0 — project scaffold, DB schema, Zustand stores, base UI components

This commit is contained in:
root
2026-02-18 06:21:22 +08:00
commit 8f66a4d4ed
22 changed files with 497 additions and 0 deletions

43
app/(tabs)/_layout.tsx Normal file
View 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
View 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
View 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
View 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
View 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>
);
}