@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
JavaScript
"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;