UNPKG

@shopgate/pwa-common

Version:

Common library for the Shopgate Connect PWA.

40 lines (39 loc) 980 B
import React from 'react'; import PropTypes from 'prop-types'; import connect from "./connector"; export const MODAL_EVENTS = { SHOW: 'Modal.show', HIDE: 'Modal.hide' }; /** * The ModalContainer is connected to the modal state * and renders the currently active modal. * @param {Object} props The component props. * @returns {JSX.Element} */ const ModalContainer = ({ component, confirm, dismiss, modal }) => { if (!modal) { return null; } const componentProps = { modal, // A11Y focus is handled by the modal container itself. onConfirm: () => confirm(modal.id), onDismiss: () => dismiss(modal.id) }; if (/*#__PURE__*/React.isValidElement(component)) { return /*#__PURE__*/React.cloneElement(component, componentProps); } return /*#__PURE__*/React.createElement(component, componentProps); }; ModalContainer.defaultProps = { confirm: () => {}, dismiss: () => {}, modal: null }; export default connect(ModalContainer);