react-phone-apps/apps/property-survey/app/_layout.tsx
lanrtop 4e1d92264d feat: 初始化 Property Survey 应用基础架构
- 添加 monorepo 结构 (apps/property-survey, packages/types)
- 配置 Expo + React Native + Android 构建链
- 实现本地数据层 (SQLite/better-sqlite3)
- 添加 Blueprint 项目蓝图系统
- 配置 ESLint + Prettier
- 添加共享类型定义
2026-04-09 13:04:36 +09:00

56 lines
1.3 KiB
TypeScript

import { Tabs } from 'expo-router'
import { useEffect, useState } from 'react'
import { StatusBar } from 'expo-status-bar'
import { ActivityIndicator, View } from 'react-native'
import { SafeAreaProvider } from 'react-native-safe-area-context'
import { initDatabase } from '../src/db/database'
export default function RootLayout() {
const [dbReady, setDbReady] = useState(false)
useEffect(() => {
initDatabase()
.then(() => setDbReady(true))
.catch((err) => {
console.error('数据库初始化失败:', err)
setDbReady(true)
})
}, [])
if (!dbReady) {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<ActivityIndicator size="large" />
</View>
)
}
return (
<SafeAreaProvider>
<StatusBar style="auto" />
<Tabs
screenOptions={{
headerShown: true,
tabBarActiveTintColor: '#10B981',
}}
>
<Tabs.Screen
name="index"
options={{
title: '登记',
tabBarLabel: '登记',
headerShown: false,
}}
/>
<Tabs.Screen
name="summary"
options={{
title: '汇总',
tabBarLabel: '汇总',
}}
/>
</Tabs>
</SafeAreaProvider>
)
}