"use client"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import Link from "next/link"; import { toast } from "sonner"; import { useTenantId } from "@/hooks/useTenantId"; import { paymentApi } from "@/modules/payment/services/payment-api"; import { PaymentPageLoader, PaymentPageError, PaymentEmptyState } from "@/modules/payment/pages/shared"; import { PageHeader, Card, CardContent, Button } from "@/components/ds"; import { PaymentStatusChip } from "@/modules/payment/components/PaymentStatusChip"; export const PaymentVerification = function PaymentVerificationPage() { const { tenantId } = useTenantId(); const qc = useQueryClient(); const q = useQuery({ queryKey: ["payment", tenantId, "verification-queue"], queryFn: async () => { const requests = await paymentApi.requests.list(tenantId!); return requests.filter((r) => ["redirect_issued", "pending"].includes(String(r.status))); }, enabled: !!tenantId, }); const verifyM = useMutation({ mutationFn: (id: string) => paymentApi.requests.verify(tenantId!, id, { status: "paid" }), onSuccess: () => { toast.success("پرداخت تأیید شد"); qc.invalidateQueries({ queryKey: ["payment", tenantId, "verification-queue"] }); }, onError: (e: Error) => toast.error(e.message), }); if (!tenantId || q.isLoading) return ; if (q.error) return q.refetch()} />; const queue = q.data ?? []; return ( {queue.length === 0 ? ( ) : ( {queue.map((r) => ( {String(r.amount_minor)} {String(r.currency)} {String(r.provider_code)} جزئیات verifyM.mutate(String(r.id))}> تأیید ))} )} ); }; export default PaymentVerification;
{String(r.amount_minor)} {String(r.currency)}
{String(r.provider_code)}