import { defineMessages, injectIntl } from 'react-intl' import classNames from 'classnames/bind' import { closeModal } from '../../actions/modal' import Button from '../button' import Block from '../block' import Heading from '../heading' const cx = classNames.bind(_s) const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }) const mapDispatchToProps = dispatch => { return { handleCloseModal() { dispatch(closeModal()) }, } } export default @connect(null, mapDispatchToProps) @injectIntl class ModalLayout extends PureComponent { static propTypes = { title: PropTypes.string, children: PropTypes.node, onClose: PropTypes.func.isRequired, handleCloseModal: PropTypes.func.isRequired, width: PropTypes.number, hideClose: PropTypes.bool, noPadding: PropTypes.bool, } static defaultProps = { width: 600, } onHandleCloseModal = () => { if (this.props.onClose) { this.props.onClose(); } else { this.props.handleCloseModal() } } render() { const { title, children, intl, width, hideClose, noPadding } = this.props const childrenContainerClasses = cx({ default: 1, heightMax80VH: 1, overflowYScroll: 1, px15: !noPadding, py10: !noPadding, }) return (