summaryrefslogtreecommitdiff
path: root/apps/mobile/app/(tabs)/_layout.tsx
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-18 17:44:50 +0000
committerGitHub <noreply@github.com>2026-01-18 17:44:50 +0000
commit869f21ee2efaefed6a5aa4fbd417c25df8dec02a (patch)
tree2a90820ac817173e5b7154e0ba5e4f5d095f9613 /apps/mobile/app/(tabs)/_layout.tsx
parent219bca168508e1ea5e91e8a9ce98338afeddfbd2 (diff)
downloadsoryu-869f21ee2efaefed6a5aa4fbd417c25df8dec02a.tar.gz
soryu-869f21ee2efaefed6a5aa4fbd417c25df8dec02a.zip
Add React Native mobile app for Makima (#3)
* [WIP] Heartbeat checkpoint - 2026-01-18 02:58:27 UTC * feat(mobile): complete mobile app integration and verification - Add ThemeColors type export to Colors.ts for type safety - Export SUPABASE_URL from supabase.ts and use environment variables - Update .env.example with correct default URLs - Add comprehensive README.md with setup instructions Verified: - TypeScript compiles without errors - App exports successfully for iOS and Android - All screens accessible (login, dashboard, tasks, settings, task detail) - Auth flow working with Zustand store and Supabase Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Task completion checkpoint --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'apps/mobile/app/(tabs)/_layout.tsx')
-rw-r--r--apps/mobile/app/(tabs)/_layout.tsx58
1 files changed, 58 insertions, 0 deletions
diff --git a/apps/mobile/app/(tabs)/_layout.tsx b/apps/mobile/app/(tabs)/_layout.tsx
new file mode 100644
index 0000000..96c1a2d
--- /dev/null
+++ b/apps/mobile/app/(tabs)/_layout.tsx
@@ -0,0 +1,58 @@
+import React from 'react';
+import { Tabs } from 'expo-router';
+import { useColorScheme } from 'react-native';
+import { Ionicons } from '@expo/vector-icons';
+import { Colors } from '../../constants/Colors';
+
+export default function TabsLayout() {
+ const colorScheme = useColorScheme() ?? 'light';
+ const colors = Colors[colorScheme];
+
+ return (
+ <Tabs
+ screenOptions={{
+ tabBarActiveTintColor: colors.tint,
+ tabBarInactiveTintColor: colors.tabIconDefault,
+ tabBarStyle: {
+ backgroundColor: colors.background,
+ borderTopColor: colors.border,
+ },
+ headerStyle: {
+ backgroundColor: colors.background,
+ },
+ headerTintColor: colors.text,
+ headerTitleStyle: {
+ fontWeight: '600',
+ },
+ }}
+ >
+ <Tabs.Screen
+ name="index"
+ options={{
+ title: 'Dashboard',
+ tabBarIcon: ({ color, size }) => (
+ <Ionicons name="home" size={size} color={color} />
+ ),
+ }}
+ />
+ <Tabs.Screen
+ name="tasks"
+ options={{
+ title: 'Tasks',
+ tabBarIcon: ({ color, size }) => (
+ <Ionicons name="list" size={size} color={color} />
+ ),
+ }}
+ />
+ <Tabs.Screen
+ name="settings"
+ options={{
+ title: 'Settings',
+ tabBarIcon: ({ color, size }) => (
+ <Ionicons name="settings-outline" size={size} color={color} />
+ ),
+ }}
+ />
+ </Tabs>
+ );
+}