@shopgate/engage
Version:
Shopgate's ENGAGE library.
5 lines • 2.55 kB
JavaScript
import{hot}from'react-hot-loader/root';import*as React from'react';import{CardList,ResponsiveContainer}from'@shopgate/engage/components';import{FulfillmentSlotSwitcher}from'@shopgate/engage/locations';import CartItemsHeaderWide from"./CartItemsHeaderWide";import{CartItemProvider,CartItem}from"../CartItem";import{CartItemCard}from"./CartItemCard";import{items,card}from"./CartItems.style";import CartItemsSubstitution from"./CartItemsSubstitution";/**
* Renders the cart items.
* @param {Object} props The component props.
* @returns {JSX.Element}
*/function CartItems(_ref){var cartItems=_ref.cartItems,onFocus=_ref.onFocus,multiLineReservation=_ref.multiLineReservation,editable=_ref.editable,isOrderDetails=_ref.isOrderDetails,isCheckoutConfirmation=_ref.isCheckoutConfirmation,currencyOverride=_ref.currencyOverride,isDirectShipOnly=_ref.isDirectShipOnly;if(!cartItems||cartItems.length===0){return null;}return React.createElement(React.Fragment,null,React.createElement(ResponsiveContainer,{breakpoint:">xs",webOnly:true},React.createElement(CartItemsHeaderWide,{editable:editable,isOrderDetails:isOrderDetails,isDirectShipOnly:isDirectShipOnly,isCheckoutConfirmation:isCheckoutConfirmation})),React.createElement(CardList,{className:items},!isOrderDetails?React.createElement(ResponsiveContainer,{appAlways:true,breakpoint:"<=xs"},React.createElement(FulfillmentSlotSwitcher,{renderBar:true,card:true,editable:editable})):null,editable&&!isDirectShipOnly&&React.createElement(ResponsiveContainer,{breakpoint:"<=xs",appAlways:true},React.createElement(CartItemsSubstitution,{cartItems:cartItems,wrapCard:true,className:card})),cartItems.map(function(item){return React.createElement(CardList.Item,{className:card,key:item.id},React.createElement(CartItemProvider,{cartItem:item,isEditable:editable,isOrderDetails:isOrderDetails,cartIsDirectShipOnly:isDirectShipOnly,isCheckoutConfirmation:isCheckoutConfirmation,locationId:item.fulfillmentLocationId},React.createElement("ul",null,React.createElement(CartItemCard,{multiLineReservation:multiLineReservation,fulfillmentLocationId:item.fulfillmentLocationId,fulfillmentMethod:item.fulfillmentMethod,hasMessages:Array.isArray(item.messages)&&item.messages.length>0},React.createElement(CartItem,{item:item,onFocus:onFocus,editable:editable,currencyOverride:currencyOverride})))));})));}CartItems.defaultProps={cartItems:null,multiLineReservation:null,editable:true,isOrderDetails:false,isDirectShipOnly:false,isCheckoutConfirmation:false,currencyOverride:null};export default hot(CartItems);