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

38 lines (37 loc) 1.78 kB
"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.__importDefault(require("react")); var hooks_1 = require("../app/hooks"); var slices_1 = require("../slices"); var ItemOption = function (_a) { var handlers = _a.handlers, group = _a.group, option = _a.option, levels = _a.levels, placeholder = _a.placeholder, children = _a.children, _b = _a.configName, configName = _b === void 0 ? 'itemOption' : _b; var dispatch = (0, hooks_1.useAppDispatch)(); var apiUrl = (0, hooks_1.useAppSelector)(slices_1.selectKioskApi); var _c = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), _d = configName, config = _c[_d]; var toggleOption = handlers.toggleOption, incrementOption = handlers.incrementOption, decrementOption = handlers.decrementOption, setOptionQuantity = handlers.setOptionQuantity; var allergenAlerts = []; var modifier = (0, utils_1.useModifier)(group, option, levels, toggleOption, incrementOption, decrementOption, setOptionQuantity, allergenAlerts); var showNested = function () { // dispatch(setCurrentOption(modifier)) var currentOption = { groupId: group.id, optionId: option.id, levels: modifier.updatedLevels }; dispatch((0, slices_1.setCurrentOption)(currentOption)); }; if (!config) return null; return children({ config: config, handlers: tslib_1.__assign({ showNested: showNested }, handlers), group: group, option: modifier, groupOption: option, apiUrl: apiUrl, placeholder: placeholder }); }; exports.default = react_1.default.memo(ItemOption);