@open-tender/ui
Version:
A component library for use with the Open Tender web app
32 lines (31 loc) • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const iconoir_react_1 = require("iconoir-react");
const react_1 = tslib_1.__importDefault(require("react"));
const components_1 = require("../../components");
const utils_1 = require("../../utils");
const ItemSelectedView = ({ config, groups, renderItemOption, renderErrorMessage }) => {
const nonSizeGroups = groups.filter(i => !i.isSize);
const selected = nonSizeGroups.reduce((arr, group) => {
const options = group.options
.filter(option => option.quantity > 0)
.map(option => ({ group, option }));
return [...arr, ...options];
}, []);
const requiredCount = nonSizeGroups.reduce((count, group) => {
const { min, quantity } = group;
const missing = min && quantity < min ? min - quantity : 0;
return (count += missing);
}, 0);
return (react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selected')),
react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selectedHeader')),
react_1.default.createElement(components_1.Text, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selectedTitle'), { text: "Current Selections" })),
requiredCount > 0 &&
renderErrorMessage(`${requiredCount} Selections Required`, react_1.default.createElement(iconoir_react_1.WarningCircle, { width: 18, height: 18, strokeWidth: 2 }))),
react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selectedOptions')), selected.length ? (selected.map(({ group, option }) => (react_1.default.createElement(components_1.View, Object.assign({ key: `${group.id}-${option.id}` }, (0, utils_1.makeProps)(config, 'item__selectedOption')), renderItemOption(group, option))))) : (react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selectedOption')),
react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selectedPlaceholder')),
react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selectedPlaceholderContainer')),
react_1.default.createElement(components_1.Text, Object.assign({}, (0, utils_1.makeProps)(config, 'item__selectedPlaceholderTitle'))))))))));
};
exports.default = ItemSelectedView;