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

35 lines (34 loc) 1.78 kB
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;