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

24 lines (23 loc) 1.2 kB
import { makeMenuItemLookup, makeUpsellItems } from '@open-tender/utils'; import React, { useCallback, useMemo } from 'react'; import { useAppSelector } from '../app/hooks'; import { selectKioskConfig, selectMenu } from '../slices'; import { default as UpsellItemContainer } from './UpsellItem'; var Upsells = function (_a) { var itemIds = _a.itemIds, close = _a.close, children = _a.children, UpsellItemView = _a.UpsellItemView; var config = useAppSelector(selectKioskConfig).upsells; var categories = useAppSelector(selectMenu).categories; var itemLookup = useMemo(function () { return makeMenuItemLookup(categories); }, [categories]); var items = makeUpsellItems(itemIds, itemLookup); var handlers = { close: close }; var renderUpsellItem = useCallback(function (item, isLast) { return (React.createElement(UpsellItemContainer, { 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 }); }; export default Upsells;