"use client"; import { useParams } from "next/navigation"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { toast } from "sonner"; import { useTenantId } from "@/hooks/useTenantId"; import { paymentApi } from "@/modules/payment/services/payment-api"; import { PaymentPageLoader, PaymentPageError } from "@/modules/payment/pages/shared"; import { PageHeader, Card, CardContent, Button } from "@/components/ds"; import { PaymentStatusChip } from "@/modules/payment/components/PaymentStatusChip"; export const PaymentMerchantDetail = function PaymentMerchantDetailPage() { const params = useParams(); const id = String(params?.id ?? ""); const { tenantId } = useTenantId(); const qc = useQueryClient(); const q = useQuery({ queryKey: ["payment", tenantId, "merchant", id], queryFn: () => paymentApi.merchants.get(tenantId!, id), enabled: !!tenantId && !!id, }); const actionM = useMutation({ mutationFn: (action: "submit" | "activate" | "suspend" | "close") => { const api = paymentApi.merchants[action]; return api(tenantId!, id); }, onSuccess: () => { toast.success("وضعیت بهروز شد"); qc.invalidateQueries({ queryKey: ["payment", tenantId, "merchant", id] }); }, onError: (e: Error) => toast.error(e.message), }); if (!tenantId || q.isLoading) return ; if (q.error) return q.refetch()} />; const m = q.data!; const status = String(m.status); return ( وضعیت: {status === "draft" ? ( actionM.mutate("submit")}> ارسال برای بررسی ) : null} {status === "pending_review" ? ( actionM.mutate("activate")}> فعالسازی ) : null} {status === "active" ? ( actionM.mutate("suspend")}> تعلیق ) : null} {!["closed"].includes(status) ? ( actionM.mutate("close")}> بستن ) : null} {JSON.stringify(m, null, 2)} ); }; export default PaymentMerchantDetail;
{JSON.stringify(m, null, 2)}