import { View, Text, ScrollView, ActivityIndicator, TouchableOpacity, TextInput, Alert } from 'react-native'; import { useLocalSearchParams, useRouter } from 'expo-router'; import { useQuery } from '@tanstack/react-query'; import { useState } from 'react'; import { api } from '../../../services/api'; export default function TicketDetailScreen() { const { id } = useLocalSearchParams<{ id: string }>(); const router = useRouter(); const [reply, setReply] = useState(''); const { data: ticket, isLoading, refetch } = useQuery({ queryKey: ['ticket', id], queryFn: () => api.get(`/api/v1/tickets/${id}`).then(r => r.data), }); const sendReply = async () => { if (!reply.trim()) return; try { await api.post(`/api/v1/tickets/${id}/messages`, { message: reply }); setReply(''); refetch(); } catch { Alert.alert('Error', 'Could not send reply.'); } }; if (isLoading) return ; return ( router.back()} className="mb-2"> ← Tickets {ticket?.subject} {ticket?.clientName} · {ticket?.status} {(ticket?.messages ?? []).map((m: any) => ( {m.message} {m.senderName} ))} Send ); }