import { useLanguage } from "../contexts/LanguageContext"; import { useListRequests, getListRequestsQueryKey, useVerifyRequest, usePublishRequest, useDeliverSupport, useConfirmReceipt, useCloseRequest, useRejectRequest, } from "@workspace/api-client-react"; import { useQueryClient } from "@tanstack/react-query"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Link } from "wouter"; import { Riyal } from "@/components/Riyal"; export default function Admin() { const { t } = useLanguage(); const queryClient = useQueryClient(); const { data: requests, isLoading } = useListRequests(); const verifyRequest = useVerifyRequest(); const publishRequest = usePublishRequest(); const deliverSupport = useDeliverSupport(); const confirmReceipt = useConfirmReceipt(); const closeRequest = useCloseRequest(); const rejectRequest = useRejectRequest(); const handleAction = async (action: any, id: string) => { try { await action.mutateAsync({ id }); queryClient.invalidateQueries({ queryKey: getListRequestsQueryKey() }); } catch (e) { console.error(e); } }; return (

{t.admin.title}

{t.admin.caseId} {t.admin.beneficiary} {t.admin.needType} {t.admin.amount} {t.admin.status} {t.admin.currentStep} {t.admin.actions} {isLoading ? ( {t.common.loading} ) : requests?.map((req) => ( {req.caseId} {req.beneficiaryName} {t.needTypes[req.needType as keyof typeof t.needTypes] || req.needType} {req.requestedAmount.toLocaleString()} {t.statuses[req.status as keyof typeof t.statuses] || req.status} {req.currentStep}/10
{req.status === "new" && ( <> )} {req.status === "pending_review" && ( <> )} {req.status === "verified" && ( )} {req.status === "donated" && ( )} {req.status === "delivered" && ( )} {req.status === "receipt_confirmed" && ( )} {req.status === "thank_you_submitted" && ( )} {req.status === "whatsapp_sent" && ( )}
))} {(!requests || requests.length === 0) && !isLoading && ( {t.admin.noRequests} )}
); }