import { useLanguage } from "../contexts/LanguageContext"; import { useListWhatsappLog, useSendWhatsapp, getListWhatsappLogQueryKey, getListRequestsQueryKey, useListRequests, } from "@workspace/api-client-react"; import { useQueryClient } from "@tanstack/react-query"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Skeleton } from "@/components/ui/skeleton"; import { Separator } from "@/components/ui/separator"; import { MessageSquare, Phone, Send, CheckCircle, Clock, XCircle } from "lucide-react"; export default function WhatsappLog() { const { t } = useLanguage(); const queryClient = useQueryClient(); const { data: logs, isLoading } = useListWhatsappLog(); const { data: allRequests } = useListRequests(); const sendWhatsapp = useSendWhatsapp(); const getRequestByCase = (caseId: string) => allRequests?.find((r) => r.caseId === caseId); const handleSend = (caseId: string) => { const req = getRequestByCase(caseId); if (!req) return; sendWhatsapp.mutate( { id: req.id }, { onSuccess: () => { queryClient.invalidateQueries({ queryKey: getListWhatsappLogQueryKey() }); queryClient.invalidateQueries({ queryKey: getListRequestsQueryKey() }); }, } ); }; const statusConfig = { pending: { icon: Clock, className: "bg-amber-100 text-amber-700 border-amber-200", label: t.whatsapp.pending, }, sent: { icon: CheckCircle, className: "bg-green-100 text-green-700 border-green-200", label: t.whatsapp.sent, }, failed: { icon: XCircle, className: "bg-red-100 text-red-700 border-red-200", label: t.whatsapp.failed, }, }; return (
{t.whatsapp.donor}
{log.donorName}
{t.thankYou.beneficiaryMessageLabel}
"{log.beneficiaryMessage}"
{t.whatsapp.message}
{t.whatsapp.sentAt}: {new Date(log.sentAt).toLocaleString()}
)}