@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
27 lines (26 loc) • 1.37 kB
JavaScript
"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 UpsellItem_1 = tslib_1.__importDefault(require("./UpsellItem"));
var Upsells = function (_a) {
var itemIds = _a.itemIds, close = _a.close, children = _a.children, UpsellItemView = _a.UpsellItemView;
var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).upsells;
var categories = (0, hooks_1.useAppSelector)(slices_1.selectMenu).categories;
var itemLookup = (0, react_1.useMemo)(function () { return (0, utils_1.makeMenuItemLookup)(categories); }, [categories]);
var items = (0, utils_1.makeUpsellItems)(itemIds, itemLookup);
var handlers = { close: close };
var renderUpsellItem = (0, react_1.useCallback)(function (item, isLast) { return (react_1.default.createElement(UpsellItem_1.default, { key: item.id, item: item, isLast: isLast, callback: close, children: UpsellItemView })); }, [close, UpsellItemView]);
if (!config)
return null;
return children({
config: config,
handlers: handlers,
items: items.slice(0, 5),
renderUpsellItem: renderUpsellItem
});
};
exports.default = Upsells;