@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
JavaScript
;
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);