Newer
Older
import { omit } from 'lodash'
import { connect } from 'react-redux'
import Modal from './Modal'
import { showModal, hideModal, setModalError } from '../redux/modal'
modalsVisibility: omit(state.modal, 'props'),
modalError: state.modal.error,
const mapDispatch = modalKey => (dispatch, propss) => ({
hideModal: () => dispatch(hideModal()),
showModal: (modalProps = {}) => dispatch(showModal(modalKey, modalProps)),
setModalError: errorMessage => dispatch(setModalError(errorMessage)),
modalComponent: Component,
overlayColor,
}) => WrappedComponent =>
connect(mapState, mapDispatch(modalKey))(
({ modalsVisibility, modalProps, modalError, hideModal, ...rest }) => (
{modalsVisibility[modalKey] && (
<Modal
{...modalProps}
component={Component}
hideModal={hideModal}
modalError={modalError}
<WrappedComponent hideModal={hideModal} {...rest} />
</React.Fragment>