@boomerang-io/carbon-addons-boomerang-react
Version:
Carbon Addons for Boomerang apps
29 lines (26 loc) • 1.23 kB
JavaScript
import React from 'react';
import ReactModal from 'react-modal';
import cx from 'classnames';
import { prefix } from '../../internal/settings.js';
/*
IBM Confidential
694970X, 69497O0
© Copyright IBM Corp. 2022, 2024
*/
function Modal(props) {
const { appElement = "#app", className, containerClassName, children, isOpen = false, ...rest } = props;
React.useEffect(() => {
ReactModal.setAppElement(appElement);
}, [appElement]);
return (React.createElement(React.Fragment, null,
React.createElement(ReactModal, { shouldCloseOnOverlayClick: true, closeTimeoutMS: 240, isOpen: isOpen, htmlOpenClassName: `${prefix}--bmrg-html-modal-is-open`, bodyOpenClassName: `${prefix}--bmrg-body-modal-is-open`, className: {
base: cx(`${prefix}--bmrg-modal-container`, containerClassName),
afterOpen: "--is-open",
beforeClose: "--is-closed",
}, portalClassName: `${prefix}--bmrg-modal-portal`, overlayClassName: {
base: cx(`${prefix}--bmrg-modal-overlay`, className),
afterOpen: "--is-open",
beforeClose: "--is-closed",
}, ...rest }, children)));
}
export { Modal, Modal as default };