@shopgate/engage
Version:
Shopgate's ENGAGE library.
8 lines • 2.24 kB
JavaScript
import React from'react';import PropTypes from'prop-types';import{connect}from'react-redux';import{i18n}from'@shopgate/engage/core/helpers';import{ProductListTypeProvider,ProductProvider}from'@shopgate/engage/product/providers';import{RippleButton}from'@shopgate/engage/components';import{getUseGetFavoriteIdsPipeline}from'@shopgate/engage/favorites';import ListItemWrapper from"./ListItemWrapper";import styles from"./styles";/**
* @param {Object} state State
* @param {Object} props Props
* @returns {Object}
*/var mapStateToProps=function mapStateToProps(state,props){return{useGetFavoriteIdsPipeline:getUseGetFavoriteIdsPipeline(state,props)};};/**
* @param {Object} props The component props
* @returns {JSX.Element}
*/var ListContent=function ListContent(_ref){var listId=_ref.listId,items=_ref.items,removeItem=_ref.removeItem,addToCart=_ref.addToCart,useGetFavoriteIdsPipeline=_ref.useGetFavoriteIdsPipeline,showLoadMoreButton=_ref.showLoadMoreButton,onLoadMore=_ref.onLoadMore;return React.createElement(React.Fragment,null,React.createElement("div",{className:styles.divider}),items.length===0?React.createElement("span",null,i18n.text('favorites.empty')):null,React.createElement(ProductListTypeProvider,{type:"favoritesList"},useGetFavoriteIdsPipeline?items.map(function(_ref2,index){var productId=_ref2.productId;return React.createElement(ProductProvider,{productId:productId,key:productId},function(_ref3){var product=_ref3.product;return product?React.createElement(ListItemWrapper,{listId:listId,product:product,items:items,addToCart:addToCart,removeItem:removeItem,index:index,key:product.id}):null;});}):null,!useGetFavoriteIdsPipeline&&items.filter(function(_ref4){var product=_ref4.product;return product;}).map(function(_ref5,index){var product=_ref5.product,notes=_ref5.notes,quantity=_ref5.quantity;return React.createElement(ListItemWrapper,{listId:listId,product:product,notes:notes,quantity:quantity,items:items,addToCart:addToCart,removeItem:removeItem,index:index,key:product.id});})),showLoadMoreButton&&React.createElement(RippleButton,{type:"primary",className:styles.loadMoreButton,onClick:onLoadMore},i18n.text('favorites.load_more_button')));};export default connect(mapStateToProps)(ListContent);