@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
35 lines (34 loc) • 1.78 kB
JavaScript
import { __assign } from "tslib";
import React, { useCallback, useMemo } from 'react';
import { useAppSelector } from '../app/hooks';
import { selectKioskConfig } from '../slices';
import { default as ItemGroupsContainer } from './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 = useAppSelector(selectKioskConfig), config = _b.option, modalContentConfig = _b.modalContent;
var handlersOption = useMemo(function () { return (__assign(__assign({}, handlers), { close: close })); }, [handlers, close]);
var renderItemGroups = useCallback(function (excludeSize) {
if (!option || !levels)
return React.createElement(React.Fragment, null);
return (React.createElement(ItemGroupsContainer, { 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
});
};
export default Option;