@open-tender/ui
Version:
A component library for use with the Open Tender web app
28 lines (27 loc) • 2.28 kB
JavaScript
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;