UNPKG

@open-tender/ui

Version:

A component library for use with the Open Tender web app

28 lines (27 loc) 2.28 kB
import { formatDollars } from '@open-tender/utils'; import React from 'react'; import { makeProps } from '../utils'; import Button from './Button'; import Text from './Text'; import View from './View'; const Cart = ({ config, handlers, cart, count, total, isOpen, renderCartItem, renderCartUpsells }) => { const cartTotal = formatDollars(total.toString()); const cartClass = isOpen ? 'cart -open' : 'cart -closed'; const overlayClass = isOpen ? 'cartOverlay -open' : 'cartOverlay -closed'; const isIncomplete = count <= 0 || total <= 0; return (React.createElement(View, Object.assign({}, makeProps(config, 'cart'), { className: cartClass }), React.createElement(View, Object.assign({}, makeProps(config, 'cart__container')), React.createElement(View, Object.assign({}, makeProps(config, 'cart__overlay'), { className: overlayClass })), React.createElement(View, Object.assign({}, makeProps(config, 'cart__ticket')), React.createElement(Button, Object.assign({}, makeProps(config, 'cart__header'), { onClick: handlers.toggleCart }), React.createElement(Text, Object.assign({}, makeProps(config, 'cart__title'), { text: "Your Order" })), React.createElement(Text, Object.assign({}, makeProps(config, 'cart__total'), { text: cartTotal }))), React.createElement(View, Object.assign({}, makeProps(config, 'cart__content')), React.createElement(View, Object.assign({}, makeProps(config, 'cart__contentContainer')), cart.map((item, index) => renderCartItem(item, index, index + 1 === cart.length))), renderCartUpsells && renderCartUpsells()), React.createElement(View, Object.assign({}, makeProps(config, 'cart__footer')), React.createElement(View, Object.assign({}, makeProps(config, 'cart__footerContainer')), React.createElement(Button, Object.assign({}, makeProps(config, 'cart__back'), { onClick: handlers.toggleCart })), React.createElement(Button, Object.assign({}, makeProps(config, isIncomplete ? 'cart__checkoutDisabled' : 'cart__checkout'), { onClick: handlers.checkout, disabled: isIncomplete })))))))); }; export default Cart;