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

22 lines (21 loc) 1.23 kB
import { makeUpsellItemsForCart } from '@open-tender/utils'; import React, { useCallback, useMemo } from 'react'; import { useAppSelector } from '../app/hooks'; import { selectCartIds, selectKioskConfig, selectMenu } from '../slices'; import { default as CartUpsellItemContainer } from './CartUpsellItem'; var CartUpsells = function (_a) { var children = _a.children, CartUpsellItemView = _a.CartUpsellItemView; var config = useAppSelector(selectKioskConfig).cartUpsells; var cartIds = useAppSelector(selectCartIds); var _b = useAppSelector(selectMenu), categories = _b.categories, soldOut = _b.soldOut; var upsellItems = useMemo(function () { return makeUpsellItemsForCart(categories, cartIds, soldOut); }, [categories, cartIds, soldOut]); var renderCartUpsellItem = useCallback(function (item, isLast) { return (React.createElement(CartUpsellItemContainer, { 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 }); }; export default CartUpsells;