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

40 lines (39 loc) 1.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ui_1 = require("@open-tender/ui"); var hooks_1 = require("../app/hooks"); var slices_1 = require("../slices"); var CategoryNavItem = function (_a) { var category = _a.category, isScrollable = _a.isScrollable, isActive = _a.isActive, displayImage = _a.displayImage, navigationType = _a.navigationType, index = _a.index, setItemLayout = _a.setItemLayout, children = _a.children, navigate = _a.navigate; var dispatch = (0, hooks_1.useAppDispatch)(); var apiUrl = (0, hooks_1.useAppSelector)(slices_1.selectKioskApi); var display_category_nav_page = (0, hooks_1.useAppSelector)(slices_1.selectStoreSettings).display_category_nav_page; var current = (0, hooks_1.useAppSelector)(slices_1.selectCurrentCategory); var isCurrent = isActive || (current === null || current === void 0 ? void 0 : current.id) === category.id; var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), categoryNavItem = _b.categoryNavItem, categoryNavItemSelected = _b.categoryNavItemSelected; var config = isCurrent ? categoryNavItemSelected : categoryNavItem; var name = category.name; var imageUrl = (0, ui_1.makeImageUrl)(category); var browse = function () { dispatch((0, slices_1.setCurrentCategory)(category)); !isScrollable && navigate && navigate(display_category_nav_page ? '/menu/category' : '/menu'); }; var handlers = { browse: browse }; if (!config) return null; return children({ config: config, handlers: handlers, title: name, imageUrl: imageUrl, apiUrl: apiUrl, disabled: isScrollable, displayImage: displayImage, navigationType: navigationType, index: index, setItemLayout: setItemLayout }); }; exports.default = CategoryNavItem;