import { useState } from 'react';
import { View, Text, ScrollView, TextInput, TouchableOpacity, ActivityIndicator, Alert } from 'react-native';
import { useLocalSearchParams, router } from 'expo-router';
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { api } from '../../../services/api';
export default function TicketDetailScreen() {
const { id } = useLocalSearchParams<{ id: string }>();
const [reply, setReply] = useState('');
const qc = useQueryClient();
const { data, isLoading } = useQuery({
queryKey: ['ticket', id],
queryFn: () => api.get(`/api/v1/tickets/${id}`).then(r => r.data),
});
const addReply = useMutation({
mutationFn: () => api.post(`/api/v1/tickets/${id}/messages`, { message: reply }),
onSuccess: () => { setReply(''); qc.invalidateQueries({ queryKey: ['ticket', id] }); },
onError: () => Alert.alert('Error', 'Could not send reply.'),
});
if (isLoading) return ;
return (
router.back()} className="mr-3">
←
{data?.subject}
{data?.status} · {data?.priority}
{(data?.messages ?? []).map((m: any) => (
{m.message}
{m.senderName}
))}
reply.trim() && addReply.mutate()}
disabled={addReply.isPending}
>
{addReply.isPending ? : Send}
);
}