UNPKG

@shopgate/engage

Version:
35 lines (34 loc) 696 B
import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; import connect from "./connector"; /** * The ProductProvider component. * @return {JSX} */ const ProductProvider = ({ children, productId, provideProduct, product }) => { useEffect(() => { if (!product) { provideProduct(productId); } }, [provideProduct, product, productId]); const props = { productId, product }; if (typeof children === 'function') { return children(props); } return /*#__PURE__*/React.cloneElement(children, { ...props, ...children.props }); }; ProductProvider.defaultProps = { product: null }; export default connect(ProductProvider);