"use client"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { LoadingButton } from "./loading-button"; import { RippleButton } from "./ui/ripple"; interface DeleteConfirmationDialogProps { isOpen: boolean; onClose: () => void; onConfirm: () => void | Promise; title: string; description: string; confirmButtonText?: string; isLoading?: boolean; profileIds?: string[]; profiles?: { id: string; name: string }[]; } export function DeleteConfirmationDialog({ isOpen, onClose, onConfirm, title, description, confirmButtonText = "Delete", isLoading = false, profileIds, profiles = [], }: DeleteConfirmationDialogProps) { const handleConfirm = async () => { await onConfirm(); }; return ( {title} {description} {profileIds && profileIds.length > 0 && (

Profiles to be deleted:

    {profileIds.map((id) => { const profile = profiles.find((p) => p.id === id); const displayName = profile ? profile.name : id; return (
  • • {displayName}
  • ); })}
)}
Cancel void handleConfirm()} isLoading={isLoading} > {confirmButtonText}
); }