'use client'; import { useState } from 'react'; import { Loader2, CheckCircle2, XCircle } from 'lucide-react'; import { toast } from 'sonner'; import { Button } from '@/components/ui/button'; import { apiFetch } from '@/lib/api/client'; import { toastError } from '@/lib/api/toast-error'; interface HealthResponse { ok: boolean; status?: number; error?: string; } export function DocumensoTestButton() { const [pending, setPending] = useState(false); const [result, setResult] = useState(null); async function runTest() { setPending(true); setResult(null); try { const res = await apiFetch<{ data: HealthResponse }>('/api/v1/admin/documenso/health', { method: 'POST', }); setResult(res.data); if (res.data.ok) { toast.success(`Documenso reachable (HTTP ${res.data.status ?? 200})`); } else { toast.error( res.data.error ?? `Documenso responded with HTTP ${res.data.status ?? 'unknown'}`, ); } } catch (err) { const message = err instanceof Error ? err.message : 'Test failed'; setResult({ ok: false, error: message }); toastError(err); } finally { setPending(false); } } return (
{result && (result.ok ? ( HTTP {result.status} ) : ( {result.error ?? `HTTP ${result.status}`} ))}
); }