import { ConfirmDialog } from '../../../../../../packages/ui-shadcn/components/confirm-dialog'

type DeleteConfirmationDialogProps = {
    open: boolean
    onOpenChange: (open: boolean) => void
    onConfirm: () => void
    title?: string
    description?: string
    itemName?: string
    isDeleting?: boolean
}

export function DeleteConfirmationDialog({
    open,
    onOpenChange,
    onConfirm,
    title = 'Konfirmasi Hapus',
    description,
    itemName,
    isDeleting = false,
}: DeleteConfirmationDialogProps) {
    const desc =
        description ??
        (itemName
            ? `Apakah Anda yakin ingin menghapus "${itemName}"? Tindakan ini tidak dapat dibatalkan.`
            : 'Apakah Anda yakin ingin menghapus item ini? Tindakan ini tidak dapat dibatalkan.')

    return (
        <ConfirmDialog
            open={open}
            onOpenChange={onOpenChange}
            handleConfirm={onConfirm}
            title={title}
            desc={desc}
            confirmText="Hapus"
            destructive
            isLoading={isDeleting}
        />
    )
}
