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