feat: 键盘唤起bug

This commit is contained in:
jinyaqiu 2025-07-25 19:45:10 +08:00
parent 714001f6ac
commit 254692d9f4
2 changed files with 26 additions and 21 deletions

View File

@ -3,13 +3,13 @@ import Chat from "@/components/ask/chat";
import AskHello from "@/components/ask/hello"; import AskHello from "@/components/ask/hello";
import SendMessage from "@/components/ask/send"; import SendMessage from "@/components/ask/send";
import { ThemedText } from "@/components/ThemedText"; import { ThemedText } from "@/components/ThemedText";
import { checkAuthStatus } from '@/lib/auth';
import { fetchApi } from "@/lib/server-api-util"; import { fetchApi } from "@/lib/server-api-util";
import { Message } from "@/types/ask"; import { Message } from "@/types/ask";
import { router, useLocalSearchParams } from "expo-router"; import { router, useLocalSearchParams } from "expo-router";
import React, { useEffect, useRef, useState } from 'react'; import React, { useEffect, useRef, useState } from 'react';
import { import {
Animated, Animated,
Keyboard,
KeyboardAvoidingView, KeyboardAvoidingView,
Platform, Platform,
ScrollView, ScrollView,
@ -21,9 +21,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context";
export default function AskScreen() { export default function AskScreen() {
const insets = useSafeAreaInsets(); const insets = useSafeAreaInsets();
useEffect(() => {
checkAuthStatus(router);
}, []);
// 在组件内部添加 ref // 在组件内部添加 ref
const scrollViewRef = useRef<ScrollView>(null); const scrollViewRef = useRef<ScrollView>(null);
const [isHello, setIsHello] = useState(true); const [isHello, setIsHello] = useState(true);
@ -56,11 +54,11 @@ export default function AskScreen() {
setUserMessages(res); setUserMessages(res);
}); });
} }
// if (newSession) { if (newSession) {
// setIsHello(false); setIsHello(true);
// createNewConversation(); setConversationId(null);
// } }
}, [sessionId]); }, [sessionId, newSession]);
// 动画效果 // 动画效果
useEffect(() => { useEffect(() => {
@ -101,7 +99,10 @@ export default function AskScreen() {
<View style={[styles.navbar, isHello && styles.hiddenNavbar]}> <View style={[styles.navbar, isHello && styles.hiddenNavbar]}>
<TouchableOpacity <TouchableOpacity
style={styles.backButton} style={styles.backButton}
onPress={() => router.push('/memo-list')} onPress={() => {
router.push('/memo-list')
Keyboard.dismiss();
}}
> >
<ReturnArrow /> <ReturnArrow />
</TouchableOpacity> </TouchableOpacity>
@ -148,7 +149,7 @@ export default function AskScreen() {
</View> </View>
{/* 输入框 */} {/* 输入框 */}
<View style={styles.inputContainer}> <View style={styles.inputContainer} key={conversationId}>
<SendMessage <SendMessage
setIsHello={setIsHello} setIsHello={setIsHello}
setUserMessages={setUserMessages} setUserMessages={setUserMessages}

View File

@ -91,22 +91,26 @@ export default function SendMessage(props: Props) {
const keyboardWillShowListener = Keyboard.addListener( const keyboardWillShowListener = Keyboard.addListener(
'keyboardWillShow', 'keyboardWillShow',
() => { () => {
console.log('Keyboard will show'); if (!conversationId) {
setIsHello(false); console.log('Keyboard will show');
setUserMessages([{ setIsHello(false);
content: { setUserMessages([{
text: "快来寻找你的记忆吧。。。" content: {
}, text: "快来寻找你的记忆吧。。。"
role: 'Assistant', },
timestamp: new Date().toISOString() role: 'Assistant',
}]) timestamp: new Date().toISOString()
}])
} else {
console.log('Keyboard will show1213');
}
} }
); );
return () => { return () => {
keyboardWillShowListener.remove(); keyboardWillShowListener.remove();
}; };
}, []); }, [conversationId]);
return ( return (
<View style={styles.container}> <View style={styles.container}>