import { Loader2 } from "lucide-react"; import type { BookingActionDef } from "@/features/bookings/booking-actions.config"; import { cn } from "@/lib/utils"; import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Textarea, } from "@edr/ui-common"; interface BookingConfirmDialogProps { open: boolean; onOpenChange: (open: boolean) => void; action: BookingActionDef | null; reference?: string; inputValue: string; onInputChange: (value: string) => void; onConfirm: () => void; isPending: boolean; confirmDisabled?: boolean; extra?: React.ReactNode; } export function BookingConfirmDialog({ open, onOpenChange, action, reference, inputValue, onInputChange, onConfirm, isPending, confirmDisabled = false, extra, }: BookingConfirmDialogProps) { if (!action || !action.confirmTitle) return null; const Icon = action.icon; const needsInput = Boolean(action.input); const inputMissing = needsInput && !inputValue.trim(); const isDestructive = action.variant === "destructive"; return (
{action.confirmTitle} {reference && (

{reference}

)}
{action.confirmDescription}
{needsInput && (