This commit is contained in:
oneao committed 2025-11-06 17:32:51 +08:00
1 parent 6849579652
commit d60be4a75b
24 files changed
+463 -179

No files matched your search

+5 -15
View File
@@ -5,7 +5,7 @@ import { Stack, useRouter } from 'expo-router'
import * as SplashScreen from 'expo-splash-screen'
import { StatusBar } from 'expo-status-bar'
import { RefreshCw } from 'lucide-react-native'
import { useEffect, useState } from 'react'
import { useEffect } from 'react'
import EmptyState from '@/components/common/EmptyStatus'
import { GluestackUIProvider } from '@/components/ui/gluestack-ui-provider'
import { useUserStore } from '@/store/user'
@@ -33,33 +33,23 @@ export function ErrorBoundary({ error, retry }: ErrorBoundaryProps) {
export default function RootLayout() {
const router = useRouter()
const token = useUserStore(state => state.token)
const userStore = useUserStore()
const [fontsLoaded] = useFonts({
SpaceMono: require('@/static/fonts/SpaceMono-Regular.ttf'),
})
const [storeLoaded, setStoreLoaded] = useState(false)
// 等待 store 恢复数据
useEffect(() => {
if (token !== undefined) {
setStoreLoaded(true)
}
}, [token])
// splash screen 隐藏 & 登录跳转
useEffect(() => {
if (fontsLoaded && storeLoaded) {
if (fontsLoaded) {
SplashScreen.hideAsync()
// 如果没有 token,则跳转登录页
if (token === null) {
if (!userStore.isLoggedIn()) {
router.replace('/auth')
}
}
}, [fontsLoaded, storeLoaded, token])
}, [fontsLoaded])
return (
<GluestackUIProvider>