import * as React from 'react' import { connect } from 'react-redux' import * as cx from 'classnames' import { StylableComponent } from '../../theme' import { ModalPopupProps, ModalPopupComponentProps } from '../interfaces' import { hideModal } from '../actions' import { Column } from '../../flex' import { OpenableComponent } from '../../common' import { MODAL_REDUCER_KEY } from '../constants' const styles = require('../../../../src/components/modal/web/styles.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 StylableComponent { 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)