UNPKG

@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
"use strict"; 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;