UNPKG

@shopgate/engage

Version:
5 lines 2.74 kB
import React,{useMemo}from'react';import PropTypes from'prop-types';import classNames from'classnames';import{css}from'glamor';import Price from'@shopgate/pwa-ui-shared/Price';import PriceStriked from'@shopgate/pwa-ui-shared/PriceStriked';import{useCartItemProduct,useCartItem}from"./CartItem.hooks";import{createCartItemPrices}from"../../cart.helpers";import CartItemProductPriceListPromotion from"./CartItemProductPriceListPromotion";var styles={price:css({fontSize:'1rem',fontWeight:500,marginLeft:'auto'}).toString(),priceStriked:css({fontSize:'.875rem',marginLeft:'auto'}).toString(),priceListEntry:css({display:'flex',flexDirection:'row',justifyContent:'flex-end',alignItems:'center'}).toString()};/** * @param {Object} props The component props * @returns {JSX} */var CartItemProductPriceList=function CartItemProductPriceList(_ref){var classes=_ref.classes,isSubtotal=_ref.isSubtotal,showLabels=_ref.showLabels;var _useCartItem=useCartItem(),isOrderDetails=_useCartItem.isOrderDetails,isCheckoutConfirmation=_useCartItem.isCheckoutConfirmation;var context=useCartItemProduct();var currency=context.currency,cartItem=context.cartItem;var prices=useMemo(function(){var _result;var result=createCartItemPrices(cartItem)[isSubtotal?'subtotal':'price'];// Not striked prices when the product is free or the cart is used to display an order if(((_result=result[result.length-1])===null||_result===void 0?void 0:_result.price)===0||isOrderDetails||isCheckoutConfirmation){return result.slice(-1);}return result;},[cartItem,isCheckoutConfirmation,isOrderDetails,isSubtotal]);return React.createElement("ul",null,prices.map(function(_ref2,index){var price=_ref2.price,isCoupon=_ref2.isCoupon,isPromo=_ref2.isPromo;var isLast=index===prices.length-1;return(/* eslint-disable react/no-array-index-key */React.createElement("li",{key:"total_".concat(index),className:classNames(styles.priceListEntry,classes===null||classes===void 0?void 0:classes.entry)},(showLabels||!isSubtotal)&&React.createElement(CartItemProductPriceListPromotion,{isCoupon:isCoupon,isPromo:isPromo,className:classes===null||classes===void 0?void 0:classes.promo}),!isLast?React.createElement(PriceStriked,{className:classNames(styles.priceStriked,classes===null||classes===void 0?void 0:classes.priceStriked),value:price,currency:currency}):React.createElement(Price,{className:classNames(styles.price,classes===null||classes===void 0?void 0:classes.price),unitPrice:price,currency:currency,discounted:prices.length>1||price===0,taxDisclaimer:true,allowFree:true}))/* eslint-enable react/no-array-index-key */);}));};CartItemProductPriceList.defaultProps={isSubtotal:false,showLabels:false,classes:{price:null,priceStriked:null}};export default CartItemProductPriceList;