diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx index abe7098..1d04e65 100644 --- a/app/(tabs)/index.tsx +++ b/app/(tabs)/index.tsx @@ -1,96 +1,108 @@ import IP from '@/assets/icons/svg/ip.svg'; import { registerBackgroundUploadTask, triggerManualUpload } from '@/components/file-upload/backgroundUploader'; -import Lottie from '@/components/lottie/lottie'; -import MessagePush from '@/components/message-push'; import * as MediaLibrary from 'expo-media-library'; import { useRouter } from 'expo-router'; import * as SecureStore from 'expo-secure-store'; -import { useEffect } from 'react'; +import { useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Platform, Text, TouchableOpacity, View } from 'react-native'; +import { useSafeAreaInsets } from "react-native-safe-area-context"; +import MemoList from './memo-list'; export default function HomeScreen() { const router = useRouter(); const { t } = useTranslation(); + const insets = useSafeAreaInsets(); + const [isLoading, setIsLoading] = useState(true); + const [isLoggedIn, setIsLoggedIn] = useState(false); - let token; - // 在组件中使用 useEffect(() => { - const setupBackgroundTask = async () => { + const checkAuthStatus = async () => { try { - // 请求必要的权限 - const { status } = await MediaLibrary.requestPermissionsAsync(); - if (status !== 'granted') { - console.warn('Media library permission not granted'); - return; + let token; + if (Platform.OS === 'web') { + token = localStorage.getItem('token') || ''; + } else { + token = await SecureStore.getItemAsync('token') || ''; } - // 注册后台任务 - await registerBackgroundUploadTask(); + const loggedIn = !!token; + setIsLoggedIn(loggedIn); - // 立即执行一次上传 - const now = new Date(); - const oneDayAgo = new Date(now.getTime() - 24 * 60 * 60 * 1000); - triggerManualUpload(oneDayAgo, now); + if (loggedIn) { + // 已登录,请求必要的权限 + const { status } = await MediaLibrary.requestPermissionsAsync(); + if (status === 'granted') { + await registerBackgroundUploadTask(); + const now = new Date(); + const oneDayAgo = new Date(now.getTime() - 24 * 60 * 60 * 1000); + await triggerManualUpload(oneDayAgo, now); + } + router.replace('/ask'); + } } catch (error) { - console.error('Error setting up background task:', error); + console.error('检查登录状态出错:', error); + } finally { + setIsLoading(false); } }; - setupBackgroundTask(); + checkAuthStatus(); }, []); - return ( - - {/* 标题区域 */} - - - {t('auth.welcomeAwaken.awaken', { ns: 'login' })} - {"\n"} - {t('auth.welcomeAwaken.your', { ns: 'login' })} - {"\n"} - {t('auth.welcomeAwaken.pm', { ns: 'login' })} - - - {t('auth.welcomeAwaken.slogan', { ns: 'login' })} - + if (isLoading) { + return ( + + 加载中... + ); + } - {/* Memo 形象区域 */} - {/* 如果是web端,使用静态ip形象,否则使用lottie */} - {Platform.OS === 'web' ? : } + return ( + + { + isLoggedIn ? : + + {/* 标题区域 */} + + + {t('auth.welcomeAwaken.awaken', { ns: 'login' })} + {"\n"} + {t('auth.welcomeAwaken.your', { ns: 'login' })} + {"\n"} + {t('auth.welcomeAwaken.pm', { ns: 'login' })} + + + {t('auth.welcomeAwaken.slogan', { ns: 'login' })} + + - {/* 介绍文本 */} - - {t('auth.welcomeAwaken.gallery', { ns: 'login' })} - {"\n"} - {t('auth.welcomeAwaken.back', { ns: 'login' })} - - - {/* 唤醒按钮 */} - { - // 判断是否有用户信息,有的话直接到usermessage页面 没有到登录页 - if (Platform.OS === 'web') { - token = localStorage.getItem('token') || ""; - } else { - token = await SecureStore.getItemAsync('token') || ""; - } - console.log("token111111111", token); - if (token) { - router.push('/user-message') - } else { - router.push('/login') - } + {/* Memo 形象区域 */} + + + - }} - activeOpacity={0.8} - > - - {t('auth.welcomeAwaken.awake', { ns: 'login' })} - - + {/* 介绍文本 */} + + {t('auth.welcomeAwaken.gallery', { ns: 'login' })} + {"\n"} + {t('auth.welcomeAwaken.back', { ns: 'login' })} + + {/* */} + {/* 唤醒按钮 */} + { + router.push('/login') + }} + activeOpacity={0.8} + > + + {t('auth.welcomeAwaken.awake', { ns: 'login' })} + + + + } ); } \ No newline at end of file