UNPKG

@open-tender/ui

Version:

A component library for use with the Open Tender web app

31 lines (30 loc) 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const utils_1 = require("@open-tender/utils"); const react_1 = tslib_1.__importDefault(require("react")); const utils_2 = require("../utils"); const Button_1 = tslib_1.__importDefault(require("./Button")); const Text_1 = tslib_1.__importDefault(require("./Text")); const View_1 = tslib_1.__importDefault(require("./View")); const Cart = ({ config, handlers, cart, count, total, isOpen, renderCartItem, renderCartUpsells }) => { const cartTotal = (0, utils_1.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_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart'), { className: cartClass }), react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__container')), react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__overlay'), { className: overlayClass })), react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__ticket')), react_1.default.createElement(Button_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__header'), { onClick: handlers.toggleCart }), react_1.default.createElement(Text_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__title'), { text: "Your Order" })), react_1.default.createElement(Text_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__total'), { text: cartTotal }))), react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__content')), react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__contentContainer')), cart.map((item, index) => renderCartItem(item, index, index + 1 === cart.length))), renderCartUpsells && renderCartUpsells()), react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__footer')), react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__footerContainer')), react_1.default.createElement(Button_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cart__back'), { onClick: handlers.toggleCart })), react_1.default.createElement(Button_1.default, Object.assign({}, (0, utils_2.makeProps)(config, isIncomplete ? 'cart__checkoutDisabled' : 'cart__checkout'), { onClick: handlers.checkout, disabled: isIncomplete })))))))); }; exports.default = Cart;