import { h } from 'preact'; import PropTypes from 'prop-types'; import { defaultChildrenPropTypes } from '../../common-prop-types'; import { Button } from '@crayons'; function getAdditionalClassNames({ size, className }) { let additionalClassNames = ''; if (size && size.length > 0 && size !== 'default') { additionalClassNames += ` crayons-modal--${size}`; } if (className && className.length > 0) { additionalClassNames += ` ${className}`; } return additionalClassNames; } const CloseIcon = () => ( Close ); export const Modal = ({ children, size = 'default', className, title, overlay, onClose, }) => { return (
{title.length > 0 && title && (

{title}

)}
{children}
{overlay && (
)}
); }; Modal.displayName = 'Modal'; Modal.defaultProps = { className: undefined, overlay: true, onClose: undefined, }; Modal.propTypes = { children: defaultChildrenPropTypes.isRequired, className: PropTypes.string, title: PropTypes.string.isRequired, overlay: PropTypes.bool, onClose: PropTypes.func, size: PropTypes.oneOf(['default', 's', 'm']).isRequired, };