/** * FormModal - модальное окно с формой * Простой подход со встроенным backdrop (как в HistoryModal) */ function FormModal({ show, onClose, onSubmit, title, children, submitLabel = 'Сохранить', cancelLabel = 'Отмена', submitIcon: SubmitIcon, cancelIcon: CancelIcon, loading = false, submitVariant = 'primary', disabled = false, size = 'md', centered = false }) { if (!show) return null; const handleSubmit = (e) => { e.preventDefault(); onSubmit?.(e); }; const handleKeyDown = (e) => { // Ctrl+Enter или Cmd+Enter для быстрого submit if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') { handleSubmit(e); } // ESC для закрытия if (e.key === 'Escape') { onClose?.(); } }; const handleBackdropClick = (e) => { if (e.target === e.currentTarget) { onClose?.(); } }; return ( <> {/* Modal Backdrop */}
{/* Modal */}
{title}
{children}
); } export default FormModal;