@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
31 lines (30 loc) • 1.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var utils_1 = require("@open-tender/utils");
var react_1 = tslib_1.__importStar(require("react"));
var hooks_1 = require("../app/hooks");
var slices_1 = require("../slices");
var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
var SuccessMessage_1 = tslib_1.__importDefault(require("./SuccessMessage"));
var ItemGroup = function (_a) {
var group = _a.group, content = _a.content, flash = _a.flash, index = _a.index, isInitiallyCollapsed = _a.isInitiallyCollapsed, onItemClicked = _a.onItemClicked, children = _a.children, ErrorMessageView = _a.ErrorMessageView, SuccessMessageView = _a.SuccessMessageView;
var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).itemGroup;
var modifierGroup = (0, utils_1.useModifierGroup)(group);
var renderErrorMessage = (0, react_1.useCallback)(function (icon, children) { return (react_1.default.createElement(ErrorMessage_1.default, { icon: icon, content: children, children: ErrorMessageView })); }, [ErrorMessageView]);
var renderSuccessMessage = (0, react_1.useCallback)(function (icon, children) { return (react_1.default.createElement(SuccessMessage_1.default, { icon: icon, content: children, children: SuccessMessageView })); }, [SuccessMessageView]);
if (!config)
return null;
return children({
config: config,
group: modifierGroup,
children: content,
flash: flash,
index: index,
isInitiallyCollapsed: isInitiallyCollapsed,
onItemClicked: onItemClicked,
renderErrorMessage: renderErrorMessage,
renderSuccessMessage: renderSuccessMessage
});
};
exports.default = react_1.default.memo(ItemGroup);