import React, { useState, forwardRef, useImperativeHandle, useRef, useEffect } from 'react'; import { View, TextInput, TouchableOpacity, Text, ScrollView, StyleSheet, ActivityIndicator } from 'react-native'; import { useTheme } from '@react-navigation/native'; import { Ionicons } from '@expo/vector-icons'; import { useAppTheme } from '../theme/ThemeProvider'; import ModelDropdown from './ModelDropdown'; import { useRouter } from 'expo-router'; import { createConversation, addMessage } from '../services/conversation'; import { supabase } from '../utils/supabase'; import { useAuth } from '../context/AuthProvider'; import { Template, getTemplates } from '../services/template'; type ConversationStarterProps = { onSend?: (message: string) => void; placeholder?: string; }; // Definiere die Ref-Methoden, die von außen aufgerufen werden können export interface ConversationStarterRef { focus: () => void; } const ConversationStarter = forwardRef(({ onSend, placeholder = 'Ask anything' }, ref) => { const [text, setText] = useState(''); const [selectedModelId, setSelectedModelId] = useState('550e8400-e29b-41d4-a716-446655440000'); // Default to Azure OpenAI GPT-O3-Mini const [isCreatingConversation, setIsCreatingConversation] = useState(false); const [templates, setTemplates] = useState([]); const [isLoadingTemplates, setIsLoadingTemplates] = useState(true); const [selectedTemplate, setSelectedTemplate] = useState