@shopgate/engage
Version:
Shopgate's ENGAGE library.
3 lines • 2.65 kB
JavaScript
import React,{useMemo}from'react';import classNames from'classnames';import{QuantityLabel,I18n,Price}from'@shopgate/engage/components';import{getTranslatedLineItemStatus}from'@shopgate/engage/orders';import{CartItemProductPriceCaption}from"./CartItemProductPriceCaption";import{createCartItemPrices}from"../../cart.helpers";import{useCartItem,useCartItemProduct}from"./CartItem.hooks";import{quantityLabel,label,container,labelValue,fulfillmentLabel}from"./CartItemProductOrderDetails.style";/**
* @returns {JSX}
*/var CartItemProductOrderDetails=function CartItemProductOrderDetails(){var _useCartItem=useCartItem(),location=_useCartItem.location,cartItem=_useCartItem.cartItem,cartIsDirectShipOnly=_useCartItem.cartIsDirectShipOnly;var _useCartItemProduct=useCartItemProduct(),product=_useCartItemProduct.product,currency=_useCartItemProduct.currency;var hasUnitWithDecimals=product.unit&&product.hasCatchWeight||false;var unitPrice=useMemo(function(){var result=createCartItemPrices(cartItem).price;return result.slice(-1)[0].price;},[cartItem]);return React.createElement("ul",{className:container},!cartIsDirectShipOnly&&(location===null||location===void 0?void 0:location.name)?React.createElement("li",null,React.createElement(I18n.Text,{string:"cart.location",className:label}),React.createElement("span",{className:labelValue},location===null||location===void 0?void 0:location.name),React.createElement(CartItemProductPriceCaption,{className:fulfillmentLabel})):null,React.createElement("li",null,React.createElement(I18n.Text,{string:"cart.status",className:label}),React.createElement("span",{className:labelValue},getTranslatedLineItemStatus(cartItem===null||cartItem===void 0?void 0:cartItem.status,cartItem===null||cartItem===void 0?void 0:cartItem.subStatus))),React.createElement("li",null,React.createElement(I18n.Text,{string:"cart.fulfilled_quantity",className:label}),React.createElement(QuantityLabel,{className:classNames(quantityLabel,labelValue),value:cartItem.quantity,unit:hasUnitWithDecimals?product.unit:null,maxDecimals:hasUnitWithDecimals?2:0})),React.createElement("li",null,React.createElement(I18n.Text,{string:"cart.ordered_quantity",className:label}),React.createElement(QuantityLabel,{className:classNames(quantityLabel,labelValue),value:cartItem.orderedQuantity,unit:hasUnitWithDecimals?product.unit:null,maxDecimals:hasUnitWithDecimals?2:0})),React.createElement("li",null,React.createElement(I18n.Text,{string:"cart.price",className:label}),React.createElement(Price,{className:labelValue,currency:currency,taxDisclaimer:true,unitPrice:unitPrice,allowFree:true})));};export default CartItemProductOrderDetails;