"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 { hapusSatuanBarang, type HapusSatuanBarangState } from "../actions"; type HapusSatuanBarangButtonProps = { idSatuanBarang: number; nama: string; }; const initial: HapusSatuanBarangState = { ok: false }; export function HapusSatuanBarangButton({ idSatuanBarang, nama, }: HapusSatuanBarangButtonProps) { const [open, setOpen] = useState(false); const [state, formAction, pending] = useActionState( async (prevState: HapusSatuanBarangState, formData: FormData) => { const result = await hapusSatuanBarang(prevState, formData); if (result.ok) setOpen(false); return result; }, initial, ); return ( } > Hapus Hapus {nama || `satuan ${idSatuanBarang}`}? Data satuan {idSatuanBarang} akan dihapus permanen.
{state.error && (

{state.error}

)} Batal
); }