- 添加 monorepo 结构 (apps/property-survey, packages/types) - 配置 Expo + React Native + Android 构建链 - 实现本地数据层 (SQLite/better-sqlite3) - 添加 Blueprint 项目蓝图系统 - 配置 ESLint + Prettier - 添加共享类型定义
56 lines
1.3 KiB
TypeScript
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>
|
|
)
|
|
}
|