"use client"; import { useActionState, useState } from "react"; import { Loader2Icon, Trash2Icon } from "lucide-react"; import { Button } from "@/components/ui/button"; import { AlertDialog, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog"; import { hapusRak, type HapusRakState } from "../actions"; type HapusRakButtonProps = { idRak: number; nama: string; }; const initial: HapusRakState = { ok: false }; export function HapusRakButton({ idRak, nama }: HapusRakButtonProps) { const [open, setOpen] = useState(false); const [state, formAction, pending] = useActionState( async (prevState: HapusRakState, formData: FormData) => { const result = await hapusRak(prevState, formData); if (result.ok) setOpen(false); return result; }, initial, ); return ( } > Hapus Hapus {nama || `rak ${idRak}`}? Data rak {idRak} akan dihapus permanen.
{state.error && (

{state.error}

)} Batal
); }