@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
37 lines (36 loc) • 1.94 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 ItemGroups_1 = tslib_1.__importDefault(require("./ItemGroups"));
var Option = function (_a) {
var option = _a.option, levels = _a.levels, handlers = _a.handlers, close = _a.close, children = _a.children, ItemGroupsView = _a.ItemGroupsView, ItemGroupView = _a.ItemGroupView, ItemOptionView = _a.ItemOptionView, SuccessMessageView = _a.SuccessMessageView, ErrorMessageView = _a.ErrorMessageView;
var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.option, modalContentConfig = _b.modalContent;
var handlersOption = (0, react_1.useMemo)(function () { return (tslib_1.__assign(tslib_1.__assign({}, handlers), { close: close })); }, [handlers, close]);
var renderItemGroups = (0, react_1.useCallback)(function (excludeSize) {
if (!option || !levels)
return react_1.default.createElement(react_1.default.Fragment, null);
return (react_1.default.createElement(ItemGroups_1.default, { levels: levels, handlers: handlersOption, groups: option.groups, excludeSize: excludeSize, children: ItemGroupsView, ItemGroupView: ItemGroupView, ItemOptionView: ItemOptionView, SuccessMessageView: SuccessMessageView, ErrorMessageView: ErrorMessageView }));
}, [
levels,
option,
handlersOption,
ItemGroupsView,
ItemGroupView,
ItemOptionView,
SuccessMessageView,
ErrorMessageView
]);
if (!config || !option || !levels)
return null;
return children({
config: config,
handlers: handlersOption,
option: option,
modalContentConfig: modalContentConfig,
renderItemGroups: renderItemGroups
});
};
exports.default = Option;