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

34 lines (33 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var hooks_1 = require("../app/hooks"); var slices_1 = require("../slices"); var CategoryNavItem_1 = tslib_1.__importDefault(require("./CategoryNavItem")); var CategoryNavOther_1 = tslib_1.__importDefault(require("./CategoryNavOther")); var CategoryNav = function (_a) { var displayImage = _a.displayImage, children = _a.children, navigate = _a.navigate, CategoryNavOtherView = _a.CategoryNavOtherView, CategoryNavItemView = _a.CategoryNavItemView; var _b = (0, hooks_1.useAppSelector)(slices_1.selectStoreSettings), display_featured = _b.display_featured, display_favorites = _b.display_favorites, display_recents = _b.display_recents, navigation_page = _b.navigation_page; var customer = ((0, hooks_1.useAppSelector)(slices_1.selectCustomerIdentified) || {}).customer; var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).categoryNav; var _c = (0, hooks_1.useAppSelector)(slices_1.selectMenu), categories = _c.categories, featured = _c.featured, rest = tslib_1.__rest(_c, ["categories", "featured"]); var favorites = customer && display_favorites ? rest.favorites : []; var recents = customer && display_recents ? rest.recents : []; var renderCategoryNavOther = (0, react_1.useCallback)(function (title, path) { return (react_1.default.createElement(CategoryNavOther_1.default, { navigate: navigate, title: title, path: path, children: CategoryNavOtherView, displayImage: displayImage, navigationType: navigation_page })); }, [navigate, CategoryNavOtherView, displayImage, navigation_page]); var renderCategoryNavItem = (0, react_1.useCallback)(function (item, index, setItemLayout) { return (react_1.default.createElement(CategoryNavItem_1.default, { key: item.id, navigate: navigate, category: item, index: index, setItemLayout: setItemLayout, children: CategoryNavItemView, displayImage: displayImage, navigationType: navigation_page })); }, [navigate, CategoryNavItemView, displayImage, navigation_page]); if (!config) return null; return children({ config: config, categories: categories, featured: display_featured ? featured : [], favorites: favorites, recents: recents, navigationType: navigation_page, displayImage: displayImage, renderCategoryNavOther: renderCategoryNavOther, renderCategoryNavItem: renderCategoryNavItem }); }; exports.default = CategoryNav;