UNPKG

@open-tender/ui

Version:

A component library for use with the Open Tender web app

32 lines (31 loc) 2.58 kB
"use strict"; 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;