"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { suspendUserAction, unsuspendUserAction, } from "@/features/admin/actions"; interface SuspendUserButtonProps { userId: string; isSuspended: boolean; } export function SuspendUserButton({ userId, isSuspended, }: SuspendUserButtonProps) { const router = useRouter(); const [open, setOpen] = useState(false); const [reason, setReason] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(""); async function handleSuspend() { setLoading(true); setError(""); const res = await suspendUserAction(userId, reason); setLoading(false); if ("error" in res && res.error) { setError(res.error); return; } setOpen(false); setReason(""); router.refresh(); } async function handleUnsuspend() { if (!confirm("Buka kembali akun ini? User akan langsung bisa login.")) { return; } setLoading(true); setError(""); const res = await unsuspendUserAction(userId); setLoading(false); if ("error" in res && res.error) { setError(res.error); return; } router.refresh(); } if (isSuspended) { return (
{error && (
{error}
)}
); } if (!open) { return ( ); } return (