UNPKG

higlass

Version:

HiGlass Hi-C / genomic / large data viewer

58 lines (50 loc) 1.31 kB
// @ts-nocheck import clsx from 'clsx'; import PropTypes from 'prop-types'; import React from 'react'; import Button from './Button'; import Cross from './Cross'; import withModal from './hocs/with-modal'; import classes from '../styles/Modal.module.scss'; function Modal(props) { const handleClose = () => { props.modal.close(); if (props.onClose) props.onClose(); }; return ( <div className={clsx(classes['modal-background'], { [classes['modal-hide']]: props.hide, })} > <div className={classes['modal-wrap']}> <div className={clsx(classes['modal-window'], { [classes['modal-window-max-height']]: props.maxHeight, })} > {props.closeButton && ( <Button onClick={handleClose}> <Cross /> </Button> )} <div className={classes['modal-content']}>{props.children}</div> </div> </div> </div> ); } Modal.defaultProps = { closeButton: true, hide: false, maxHeight: false, }; Modal.propTypes = { children: PropTypes.element.isRequired, closeButton: PropTypes.bool, hide: PropTypes.bool, maxHeight: PropTypes.bool, modal: PropTypes.object.isRequired, onClose: PropTypes.func, }; export default withModal(Modal);