@automattic/mini-cart
Version:
A simple wp.com shopping-cart interface.
27 lines • 2.28 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { getCouponLineItemFromCart, getCreditsLineItemFromCart, NonProductLineItem, LineItem, canItemBeRemovedFromCart, useRestorableProducts, RemovedFromCartItem, } from '@automattic/wpcom-checkout';
import styled from '@emotion/styled';
const MiniCartLineItemsWrapper = styled.ul `
border-top: 1px solid ${(props) => props.theme.colors.borderColorLight};
box-sizing: border-box;
margin: 20px 0;
padding: 0;
overflow-y: auto;
max-height: 50vh;
scrollbar-color: var( --color-text, #000 ) var( --color-surface, #fff );
`;
const MiniCartLineItemWrapper = styled.li `
margin: 0;
padding: 0;
display: block;
list-style: none;
`;
export function MiniCartLineItems({ removeProductFromCart, addProductsToCart, removeCoupon, createUserAndSiteBeforeTransaction, responseCart, }) {
const creditsLineItem = getCreditsLineItemFromCart(responseCart);
const couponLineItem = getCouponLineItemFromCart(responseCart);
const [restorableProducts, setRestorableProducts] = useRestorableProducts();
return (_jsxs(MiniCartLineItemsWrapper, { className: "mini-cart-line-items", children: [responseCart.products.map((product) => {
return (_jsx(MiniCartLineItemWrapper, { children: _jsx(LineItem, { product: product, hasDeleteButton: canItemBeRemovedFromCart(product, responseCart), removeProductFromCart: removeProductFromCart, createUserAndSiteBeforeTransaction: createUserAndSiteBeforeTransaction, responseCart: responseCart, isRestorable: true, restorableProducts: restorableProducts, setRestorableProducts: setRestorableProducts }) }, product.uuid));
}), restorableProducts.map((product) => (_jsx(RemovedFromCartItem, { product: product, addProductsToCart: addProductsToCart }, product.uuid))), couponLineItem && (_jsx(MiniCartLineItemWrapper, { children: _jsx(NonProductLineItem, { lineItem: couponLineItem, removeProductFromCart: removeCoupon, createUserAndSiteBeforeTransaction: createUserAndSiteBeforeTransaction, hasDeleteButton: couponLineItem.hasDeleteButton }) }, couponLineItem.id)), creditsLineItem && responseCart.sub_total_integer > 0 && (_jsx(NonProductLineItem, { subtotal: true, lineItem: creditsLineItem }))] }));
}
//# sourceMappingURL=mini-cart-line-items.js.map