itsm_ysm/mobile/app/_layout.tsx
itms-merge-dev efc3e66635 feat(itms): 모바일 앱 신규 (Expo, 12화면, OAuth password grant)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:10:46 +09:00

45 lines
1.7 KiB
TypeScript

import { Stack } from 'expo-router'
import { View } from 'react-native'
import { StatusBar } from 'expo-status-bar'
import { ThemeProvider, useTheme } from '../constants/ThemeContext'
/*
* ITMS 루트 레이아웃 — ThemeProvider + 스택.
* 스플래시는 이미지 자산 없이 BrandSplash(순수 View)로 대체(index 게이트에서 표시).
*/
function ItmsStack() {
const { t, resolved } = useTheme()
return (
<View style={{ flex: 1, backgroundColor: t.bg }}>
<StatusBar style={resolved === 'dark' ? 'light' : 'dark'} />
<Stack
screenOptions={{
headerStyle: { backgroundColor: t.bg },
headerTintColor: t.text,
headerTitleStyle: { fontWeight: '800', fontSize: 16 },
contentStyle: { backgroundColor: t.bg },
headerShadowVisible: false,
}}
>
<Stack.Screen name="index" options={{ headerShown: false }} />
<Stack.Screen name="(auth)/login" options={{ headerShown: false }} />
<Stack.Screen name="(tabs)" options={{ headerShown: false }} />
<Stack.Screen name="request-detail" options={{ title: '요청 상세' }} />
<Stack.Screen name="request-new" options={{ title: '서비스 요청 등록' }} />
<Stack.Screen name="incident-detail" options={{ title: '인시던트 상세' }} />
<Stack.Screen name="notice-detail" options={{ title: '공지 상세' }} />
<Stack.Screen name="assets" options={{ title: '자산 조회' }} />
<Stack.Screen name="asset-detail" options={{ title: '자산 상세' }} />
</Stack>
</View>
)
}
export default function RootLayout() {
return (
<ThemeProvider>
<ItmsStack />
</ThemeProvider>
)
}