import * as React from 'react' import { connect } from 'react-redux' import * as cx from 'classnames' import { ModalPopupProps, ModalPopupComponentProps } from '../../interfaces' import { hideModal } from '../../actions' import { Column } from '../column' import { OpenableComponent } from '../openable-component' import { MODAL_REDUCER_KEY } from '../../reducers' const styles = require('../../../src/styles/components/modal.scss') class ModalPopupComponent extends OpenableComponent { public renderCloseButton() { if (!this.props.closeButton) return null return ( {'\u00D7'} ) } public render() { return (
{this.renderCloseButton()} {this.props.children}
) } public isActive() { const { state, backgroundActive } = this.props return backgroundActive || (state.modalProps && state.modalProps.backgroundActive) } public handleClose() { this.props.closeModal() } } export class ModalPopupContent extends React.Component { public render() { return (
{this.props.children}
) } } const mapStateToProps = (state: any, ownProps: ModalPopupProps) => ({ state: state[MODAL_REDUCER_KEY], }) const mapDispatchToProps = { closeModal: hideModal, } export const ModalPopup = connect(mapStateToProps, mapDispatchToProps)(ModalPopupComponent)