import PropTypes from 'prop-types'; import { Button, Form, Modal } from 'react-bootstrap'; import { createPortal } from 'react-dom'; import './Modal.css'; const ModalForm = ({ show, title, validated, onSubmit, onClose, children, }) => { return createPortal( <Modal show={show} backdrop='static' onHide={() => onClose()}> <Modal.Header className='pt-2 pb-2 ps-3 pe-3' closeButton> <Modal.Title>{title}</Modal.Title> </Modal.Header> <Form className='m-0' noValidate validated={validated} onSubmit={onSubmit}> <Modal.Body> {children} </Modal.Body> <Modal.Footer className='m-0 pt-2 pb-2 ps-3 pe-3 row justify-content-center'> <Button variant='secondary' className='col-5 m-0 me-2' onClick={() => onClose()}> Отмена </Button> <Button variant='primary' className='col-5 m-0 ms-2' type='submit'> Сохранить </Button> </Modal.Footer> </Form> </Modal>, document.body, ); }; ModalForm.propTypes = { show: PropTypes.bool, title: PropTypes.string, validated: PropTypes.bool, onSubmit: PropTypes.func, onClose: PropTypes.func, children: PropTypes.node, }; export default ModalForm;