"use client"; import type { ComponentProps, ReactNode } from "react"; import { toast } from "sonner"; import { SimpleTooltip } from "@/components/tooltip"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog"; interface DeleteConfirmationDialogProps { title: ReactNode; description: ReactNode; onConfirm: () => void | Promise; confirmLabel?: ReactNode; trigger?: ComponentProps["render"]; children?: ReactNode; open?: ComponentProps["open"]; onOpenChange?: ComponentProps["onOpenChange"]; showSuccessToast?: boolean; triggerTooltip?: ReactNode; } export function DeleteConfirmationDialog({ title, description, onConfirm, confirmLabel = "ยืนยันลบ", trigger, children, open, onOpenChange, showSuccessToast = true, triggerTooltip, }: DeleteConfirmationDialogProps) { const handleConfirm = async () => { await onConfirm(); if (showSuccessToast) toast.success("ลบสำเร็จ!"); }; return ( {trigger ? ( triggerTooltip ? ( {children} ) : ( {children} ) ) : null} {title} {description} ยกเลิก {confirmLabel} ); }