feat: ask优化
This commit is contained in:
parent
d728ea05c0
commit
be3c8e0c75
@ -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 (
|
||||
|
||||
@ -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 }
|
||||
]}
|
||||
>
|
||||
<View className={`${isUser ? 'bg-bgPrimary' : 'bg-aiBubble'}`}>
|
||||
<Text style={isUser ? styles.userText : styles.aiText}>
|
||||
{!isUser
|
||||
?
|
||||
sessionId ? item.content.text : item.content.text == "正在寻找,请稍等..." ? <Loading /> : item.content.text
|
||||
? item.content.text == "keepSearchIng"
|
||||
? <Loading />
|
||||
: item.content.text
|
||||
: item.content.text
|
||||
}
|
||||
</Text>
|
||||
@ -142,7 +143,7 @@ const MessageItem = ({ setCancel, cancel = true, t, insets, item, sessionId, set
|
||||
</View>
|
||||
</View>
|
||||
{
|
||||
item.content.text == "正在寻找,请稍等..."
|
||||
item.content.text == "keepSearchIng"
|
||||
&&
|
||||
<Text style={{ color: "d9d9d9" }}>
|
||||
{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',
|
||||
},
|
||||
|
||||
@ -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'
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@ -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'
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user