import { ThemedText } from "@/components/ThemedText"; import { Fonts } from "@/constants/Fonts"; import { webSocketManager } from "@/lib/websocket-util"; import { Message } from "@/types/ask"; import { Dispatch, SetStateAction } from "react"; import { useTranslation } from "react-i18next"; import { Dimensions, Image, ScrollView, StyleSheet, TouchableOpacity, View } from 'react-native'; import { createNewConversation } from "./utils"; interface AskHelloProps { setUserMessages: Dispatch>; setConversationId: Dispatch>; setIsHello: Dispatch>; } export default function AskHello({ setUserMessages, setConversationId, setIsHello }: AskHelloProps) { const { t } = useTranslation(); const width = Dimensions.get('window').width; const height = Dimensions.get('window').height; const handleCase = async (text: string) => { setIsHello(false); setUserMessages([ { id: Math.random().toString(36).substring(2, 9), content: text, role: 'user', timestamp: new Date().toISOString() }, { id: Math.random().toString(36).substring(2, 9), content: "keepSearchIng", role: 'assistant', timestamp: new Date().toISOString() } ]); const sessionId = await createNewConversation(text); if (sessionId) { setConversationId(sessionId); webSocketManager.send({ type: 'Chat', session_id: sessionId, message: text }); } else { console.error("Failed to create a new conversation."); setUserMessages(prev => prev.filter(item => item.content !== 'keepSearchIng')); } } return ( {t('ask.hi', { ns: 'ask' })} {"\n"} {t('ask.iAmMemo', { ns: 'ask' })} {t('ask.ready', { ns: 'ask' })} {"\n"} {t('ask.justAsk', { ns: 'ask' })} { handleCase(t('ask:ask.case1')); }}> {t('ask:ask.case1')} { handleCase(t('ask:ask.case2')); }}> {t('ask:ask.case2')} { handleCase(t('ask:ask.case3')); }}> {t('ask:ask.case3')} ); } const styles = StyleSheet.create({ caseContainer: { flexDirection: 'row', flexWrap: 'wrap', justifyContent: 'center', gap: 8, width: '100%', marginTop: 16 }, case: { borderWidth: 1, borderColor: Fonts["textPrimary"], borderRadius: 10, paddingHorizontal: 8, paddingVertical: 2, width: 'auto', fontSize: Fonts["sm"], color: Fonts["textSecondary"], fontFamily: Fonts["sfPro"] } })