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

27 lines (26 loc) 1.37 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 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;