@open-tender/ui
Version:
A component library for use with the Open Tender web app
34 lines (33 loc) • 3.37 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 CartItem = ({ config, handlers, item, isEditable, isLast, renderQuantity, apiUrl, displayCals = false }) => {
const { name, imageUrl, quantity, totalPrice, totalCals } = item;
const { edit, remove } = handlers;
const desc = (0, utils_1.makeModifierNames)(item);
const imageProps = (0, utils_2.makeImageProps)(config, 'cartItem__image', imageUrl, apiUrl);
return (react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, isLast ? 'cartItemLast' : 'cartItem')),
react_1.default.createElement(View_1.default, Object.assign({}, imageProps)),
react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__container')),
react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__header')),
react_1.default.createElement(Text_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__title'), { text: name })),
react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__details')),
totalPrice !== null && (react_1.default.createElement(Text_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__price'), { text: (0, utils_1.formatDollars)(totalPrice.toString()) }))),
displayCals && totalCals !== null && (react_1.default.createElement(Text_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__calories'), { text: `${(0, utils_1.formatQuantity)(totalCals.toString())} Cal` }))))),
react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__content')),
react_1.default.createElement(Text_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__description'), { text: desc })),
!isEditable && (react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__quantityContainer')),
react_1.default.createElement(Text_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__quantity'), { text: `${quantity}` }))))),
isEditable && (react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__footer')),
renderQuantity(quantity),
react_1.default.createElement(View_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__footerButtons')),
react_1.default.createElement(Button_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__edit'), { onClick: edit }), "Edit"),
react_1.default.createElement(Button_1.default, Object.assign({}, (0, utils_2.makeProps)(config, 'cartItem__remove'), { onClick: remove }), "Remove")))))));
};
exports.default = CartItem;