* feat: 🎸 New modal provider A new modal provider/context component to unify modal related code and simplify modal use Closes: #1086 * refactor(ModalContext): Keep current modal lib * Update modal provider version according to PR #1116 * Update modal provider props to use inner props * Add custom class prop * CR Update: Refactor provider to extract specific modal * Fix modal import * CR Update: Move from spread to object assign * CR Update: Add proptypes, use classnames dependency over interpolation and rename modal
61 lines
1.4 KiB
JavaScript
61 lines
1.4 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import ReactBootstrapModal from 'react-bootstrap-modal';
|
|
import classNames from 'classnames';
|
|
|
|
const OHIFModal = ({
|
|
className,
|
|
closeButton,
|
|
backdrop,
|
|
keyboard,
|
|
show,
|
|
title,
|
|
onHide,
|
|
footer: Footer,
|
|
header: Header,
|
|
children: Component,
|
|
}) => (
|
|
<ReactBootstrapModal
|
|
className={classNames('modal fade themed in', className)}
|
|
backdrop={backdrop}
|
|
keyboard={keyboard}
|
|
show={show}
|
|
large={true}
|
|
title={title}
|
|
onHide={onHide}
|
|
>
|
|
{(Header || title) && (
|
|
<ReactBootstrapModal.Header closeButton={closeButton}>
|
|
{title && (
|
|
<ReactBootstrapModal.Title>{title}</ReactBootstrapModal.Title>
|
|
)}
|
|
{Header && <Header hide={onHide} />}
|
|
</ReactBootstrapModal.Header>
|
|
)}
|
|
<ReactBootstrapModal.Body>
|
|
{Component && <Component hide={onHide} />}
|
|
</ReactBootstrapModal.Body>
|
|
{Footer && (
|
|
<ReactBootstrapModal.Footer>
|
|
{' '}
|
|
<Footer hide={onHide} />
|
|
</ReactBootstrapModal.Footer>
|
|
)}
|
|
</ReactBootstrapModal>
|
|
);
|
|
|
|
OHIFModal.propTypes = {
|
|
className: PropTypes.string,
|
|
closeButton: PropTypes.bool,
|
|
backdrop: PropTypes.bool,
|
|
keyboard: PropTypes.bool,
|
|
show: PropTypes.bool,
|
|
title: PropTypes.string,
|
|
onHide: PropTypes.func,
|
|
footer: PropTypes.node,
|
|
header: PropTypes.node,
|
|
children: PropTypes.node,
|
|
};
|
|
|
|
export default OHIFModal;
|