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}
)}
);
}