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.81 kB
import React, { useCallback } from 'react'; import { useAppSelector } from '../app/hooks'; import { selectKioskConfig } from '../slices'; import { default as ItemGroupContainer } from './ItemGroup'; import { default as ItemOptionContainer } from './ItemOption'; var ItemGroups = function (_a) { var handlers = _a.handlers, groups = _a.groups, levels = _a.levels, _b = _a.excludeSize, excludeSize = _b === void 0 ? true : _b, _c = _a.configName, configName = _c === void 0 ? 'itemGroups' : _c, _d = _a.optionConfigName, optionConfigName = _d === void 0 ? 'itemOption' : _d, children = _a.children, ItemGroupView = _a.ItemGroupView, ItemOptionView = _a.ItemOptionView, ErrorMessageView = _a.ErrorMessageView, SuccessMessageView = _a.SuccessMessageView; var _e = useAppSelector(selectKioskConfig), _f = configName, config = _e[_f]; var renderItemOption = useCallback(function (group, option) { return (React.createElement(ItemOptionContainer, { key: "".concat(group.id, "-").concat(option.id), levels: levels, handlers: handlers, group: group, option: option, children: ItemOptionView, configName: optionConfigName })); }, [levels, handlers, ItemOptionView, optionConfigName]); var renderItemGroup = useCallback(function (group, content) { return (React.createElement(ItemGroupContainer, { key: group.id, SuccessMessageView: SuccessMessageView, ErrorMessageView: ErrorMessageView, group: group, content: content, children: ItemGroupView, isInitiallyCollapsed: false })); }, [ItemGroupView, ErrorMessageView, SuccessMessageView]); if (!config) return null; return children({ config: config, groups: groups, excludeSize: excludeSize, renderItemOption: renderItemOption, renderItemGroup: renderItemGroup }); }; export default ItemGroups;