DS 컴포넌트 9개 (ScreenPanel, WaveBars, AppStatusBar, Header, FilterChip 신규), 5개 탭 + 로그인 화면 D3RO 인스트루먼트 미학 적용, i18n 연결 (I18nProvider + 모바일 전용 키 80+개), 모노레포 workspaces에 apps/mobile 추가.
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
// apps/mobile/app/_layout.tsx
|
|
// Root layout — Stack + AuthProvider + I18nProvider
|
|
|
|
import { Stack } from 'expo-router'
|
|
import { StatusBar } from 'expo-status-bar'
|
|
import { GestureHandlerRootView } from 'react-native-gesture-handler'
|
|
import { SafeAreaProvider } from 'react-native-safe-area-context'
|
|
import { AuthProvider } from '../lib/auth-context'
|
|
import { I18nProvider } from '@d3ro/i18n'
|
|
import { d3roNativePalette } from '@d3ro/ui-native'
|
|
|
|
export default function RootLayout(): React.ReactElement {
|
|
return (
|
|
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
<SafeAreaProvider>
|
|
<I18nProvider initialLocale="ko">
|
|
<AuthProvider>
|
|
<StatusBar style="light" />
|
|
<Stack
|
|
screenOptions={{
|
|
headerStyle: { backgroundColor: d3roNativePalette.bg.app },
|
|
headerTintColor: d3roNativePalette.accent.amber,
|
|
contentStyle: { backgroundColor: d3roNativePalette.bg.app }
|
|
}}
|
|
>
|
|
<Stack.Screen name="index" options={{ headerShown: false }} />
|
|
<Stack.Screen name="login" options={{ headerShown: false }} />
|
|
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
|
|
</Stack>
|
|
</AuthProvider>
|
|
</I18nProvider>
|
|
</SafeAreaProvider>
|
|
</GestureHandlerRootView>
|
|
)
|
|
}
|