'use client' import { ReactNode, useRef } from 'react' import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' import { ClipboardCheck, Loader2, AlertTriangle } from 'lucide-react' interface ConfirmationDialogProps { open: boolean onOpenChange: (open: boolean) => void onConfirm: () => void isSubmitting: boolean title: string warningText?: string confirmLabel?: string extraActions?: ReactNode children: ReactNode // When true, initial focus lands on the confirm button so Enter fires the // primary action. Opt-in: never arm Enter on unrelated/destructive dialogs. autoFocusConfirm?: boolean } export function ConfirmationDialog({ open, onOpenChange, onConfirm, isSubmitting, title, warningText = 'En verifikation skapas och kan inte ändras efteråt.', confirmLabel = 'Bekräfta & skapa', extraActions, children, autoFocusConfirm, }: ConfirmationDialogProps) { const confirmRef = useRef(null) return ( { e.preventDefault() confirmRef.current?.focus() } : undefined} >
{title} Granska uppgifterna innan du bekräftar
{children}
{warningText && (

{warningText}

)} {extraActions}
) }