"use client"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog"; import { Trash2, Loader2 } from "lucide-react"; import { useState } from "react"; import { buttonVariants } from "@/components/ui/button"; import { cn } from "@/lib/utils"; interface DeleteDialogProps { title: string; description: string; onConfirm: () => Promise; } export default function DeleteDialog({ title, description, onConfirm }: DeleteDialogProps) { const [loading, setLoading] = useState(false); const [open, setOpen] = useState(false); async function handleConfirm() { setLoading(true); try { await onConfirm(); setOpen(false); } finally { setLoading(false); } } return ( {title} {description} Annuler {loading ? : "Supprimer"} ); }