import { Loader2, CheckCircle, CircleAlert } from 'lucide-react'; import { useState } from 'react'; import type { ReactNode } from 'react'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, } from '@/components/ui/dialog'; import { useTranslation } from '@/i18n/useI18n'; interface Props { open: boolean; onOpenChange: (open: boolean) => void; title: string; description?: ReactNode; confirmLabel?: string; onConfirm: () => Promise; } export function DeleteDialog({ open, onOpenChange, title, description, confirmLabel, onConfirm, }: Props) { const { t } = useTranslation(); const [deleting, setDeleting] = useState(false); const handleConfirm = async () => { setDeleting(true); try { await onConfirm(); onOpenChange(false); } finally { setDeleting(false); } }; return ( {title} {description && {description}} ); }