@open-tender/store
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our in-store POS API
25 lines (24 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var utils_1 = require("@open-tender/utils");
var react_1 = tslib_1.__importStar(require("react"));
var hooks_1 = require("../app/hooks");
var slices_1 = require("../slices");
var CartUpsellItem_1 = tslib_1.__importDefault(require("./CartUpsellItem"));
var CartUpsells = function (_a) {
var children = _a.children, CartUpsellItemView = _a.CartUpsellItemView;
var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).cartUpsells;
var cartIds = (0, hooks_1.useAppSelector)(slices_1.selectCartIds);
var _b = (0, hooks_1.useAppSelector)(slices_1.selectMenu), categories = _b.categories, soldOut = _b.soldOut;
var upsellItems = (0, react_1.useMemo)(function () { return (0, utils_1.makeUpsellItemsForCart)(categories, cartIds, soldOut); }, [categories, cartIds, soldOut]);
var renderCartUpsellItem = (0, react_1.useCallback)(function (item, isLast) { return (react_1.default.createElement(CartUpsellItem_1.default, { key: item.id, item: item, isLast: isLast, children: CartUpsellItemView })); }, [CartUpsellItemView]);
if (!config || !upsellItems.length)
return null;
return children({
config: config,
upsellItems: upsellItems.slice(0, 5),
renderCartUpsellItem: renderCartUpsellItem
});
};
exports.default = CartUpsells;