import React, { useState } from "react"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "@/components/ui/alert-dialog"; import { User } from "@/services/userService"; import { Loader2 } from "lucide-react"; interface DeleteUserDialogProps { isOpen: boolean; setIsOpen: (open: boolean) => void; user: User | null; onDelete: () => void; isDeleting?: boolean; } const DeleteUserDialog = ({ isOpen, setIsOpen, user, onDelete, isDeleting = false, }: DeleteUserDialogProps) => { if (!user) return null; const handleCancel = () => { if (!isDeleting) { setIsOpen(false); } }; const handleConfirm = () => { if (!isDeleting) { onDelete(); } }; return ( { // Only allow closing if not currently deleting if (!isDeleting || !newOpen) { setIsOpen(newOpen); } }}> Delete user Are you sure you want to delete {user.full_name || user.username}? This action cannot be undone. Cancel {isDeleting ? ( <> Deleting... ) : ( 'Delete' )} ); }; export default DeleteUserDialog;