@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
25 lines (24 loc) • 1.99 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 ItemGroup_1 = tslib_1.__importDefault(require("./ItemGroup"));
var ItemOption_1 = tslib_1.__importDefault(require("./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 = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), _f = configName, config = _e[_f];
var renderItemOption = (0, react_1.useCallback)(function (group, option) { return (react_1.default.createElement(ItemOption_1.default, { 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 = (0, react_1.useCallback)(function (group, content) { return (react_1.default.createElement(ItemGroup_1.default, { 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
});
};
exports.default = ItemGroups;