import { type FormEvent, type ReactNode, useState, useEffect } from 'react' interface FormModalProps { title: string onClose: () => void onSubmit: (e: FormEvent) => void children: ReactNode submitLabel?: string | undefined isSubmitting?: boolean | undefined onDelete?: (() => void) | undefined isDeleting?: boolean | undefined headerExtra?: ReactNode | undefined } export function FormModal({ title, onClose, onSubmit, children, submitLabel = 'Save', isSubmitting, onDelete, isDeleting, headerExtra, }: FormModalProps) { const [confirmingDelete, setConfirmingDelete] = useState(false) // Reset confirm state when modal closes/reopens useEffect(() => { setConfirmingDelete(false) }, [onDelete]) return (

{title}

{headerExtra}
{children}
{onDelete && ( )}
) }