diff --git a/app/(tabs)/owner.tsx b/app/(tabs)/owner.tsx index fe9936f..3e7322e 100644 --- a/app/(tabs)/owner.tsx +++ b/app/(tabs)/owner.tsx @@ -10,8 +10,8 @@ import UserInfo from '@/components/owner/userName'; import { checkAuthStatus } from '@/lib/auth'; import { fetchApi } from '@/lib/server-api-util'; import { CountData, UserInfoDetails } from '@/types/user'; -import { useRouter } from 'expo-router'; -import { useEffect, useState } from 'react'; +import { useFocusEffect, usePathname, useRouter } from 'expo-router'; +import { useCallback, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { FlatList, StyleSheet, View } from 'react-native'; import { useSafeAreaInsets } from "react-native-safe-area-context"; @@ -20,6 +20,7 @@ export default function OwnerPage() { const insets = useSafeAreaInsets(); const { t } = useTranslation(); const router = useRouter(); + const pathname = usePathname(); useEffect(() => { const checkAuth = async () => { @@ -54,18 +55,24 @@ export default function OwnerPage() { }) } // 设计轮询获取数量统计 - useEffect(() => { - // 将轮询间隔增加到5秒,减少服务器压力和电池消耗 - const interval = setInterval(() => { + useFocusEffect( + useCallback(() => { + // 当页面获取焦点时开始轮询 + const interval = setInterval(() => { + getCountData(); + }, 5000); + + // 立即执行一次 getCountData(); - }, 5000); - return () => clearInterval(interval); - }, []); + + // 当页面失去焦点时清除定时器 + return () => clearInterval(interval); + }, []) // 空依赖数组,因为 getCountData 是稳定的 + ); // 初始化获取用户信息 useEffect(() => { getUserInfo(); - getCountData(); }, []); return ( diff --git a/components/ask/aiChat.tsx b/components/ask/aiChat.tsx index 58dcc95..4ec6971 100644 --- a/components/ask/aiChat.tsx +++ b/components/ask/aiChat.tsx @@ -49,14 +49,15 @@ const MessageItem = ({ setCancel, cancel = true, t, insets, item, sessionId, set style={[ styles.messageBubble, isUser ? styles.userBubble : styles.aiBubble, - { marginRight: item.content.text == "正在寻找,请稍等..." ? 0 : isUser ? 0 : 10 } + { marginRight: item.content.text == "keepSearchIng" ? 0 : isUser ? 0 : 10 } ]} > {!isUser - ? - sessionId ? item.content.text : item.content.text == "正在寻找,请稍等..." ? : item.content.text + ? item.content.text == "keepSearchIng" + ? + : item.content.text : item.content.text } @@ -142,7 +143,7 @@ const MessageItem = ({ setCancel, cancel = true, t, insets, item, sessionId, set { - item.content.text == "正在寻找,请稍等..." + item.content.text == "keepSearchIng" && {t("ask:ask.think")} @@ -245,12 +246,12 @@ const styles = StyleSheet.create({ userBubble: { alignSelf: 'flex-end', backgroundColor: '#FFB645', - marginLeft: '20%', + marginLeft: 10, }, aiBubble: { alignSelf: 'flex-start', backgroundColor: '#fff', - marginRight: '20%', + marginRight: 10, borderWidth: 1, borderColor: '#e5e5ea', }, diff --git a/components/ask/hello.tsx b/components/ask/hello.tsx index 474a37e..b502a00 100644 --- a/components/ask/hello.tsx +++ b/components/ask/hello.tsx @@ -26,7 +26,7 @@ export default function AskHello({ setUserMessages, setConversationId, setIsHell }, { content: { - text: "正在寻找,请稍等..." + text: "keepSearchIng" }, role: 'Assistant', timestamp: new Date().toISOString() @@ -41,7 +41,7 @@ export default function AskHello({ setUserMessages, setConversationId, setIsHell newMessages.push(response); } return newMessages.filter((item: Message) => - item?.content?.text !== '正在寻找,请稍等...' + item?.content?.text !== 'keepSearchIng' ); }); } diff --git a/components/ask/send.tsx b/components/ask/send.tsx index fef9621..756b258 100644 --- a/components/ask/send.tsx +++ b/components/ask/send.tsx @@ -82,7 +82,7 @@ export default function SendMessage(props: Props) { }, { content: { - text: "正在寻找,请稍等..." + text: "keepSearchIng" }, role: 'Assistant', timestamp: new Date().toISOString() @@ -100,7 +100,7 @@ export default function SendMessage(props: Props) { newMessages.push(response); } return newMessages.filter((item: Message) => - item?.content?.text !== '正在寻找,请稍等...' + item?.content?.text !== 'keepSearchIng' ); }); } else { @@ -116,7 +116,7 @@ export default function SendMessage(props: Props) { newMessages.push(response); } return newMessages.filter((item: Message) => - item?.content?.text !== '正在寻找,请稍等...' + item?.content?.text !== 'keepSearchIng' ); }); }