@open-tender/ui
Version:
A component library for use with the Open Tender web app
36 lines (35 loc) • 2.94 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const react_1 = tslib_1.__importDefault(require("react"));
const components_1 = require("../../components");
const utils_1 = require("../../utils");
const ItemTagsAllergensView_1 = tslib_1.__importDefault(require("./ItemTagsAllergensView"));
const ItemTitleView_1 = tslib_1.__importDefault(require("./ItemTitleView"));
const ItemTogglesView_1 = tslib_1.__importDefault(require("./ItemTogglesView"));
const ItemHeaderView = ({ config, handlers, builtItem, hasCals, hasIngredients, hasInstructions, apiUrl, renderButtonLink, renderQuantity, renderTag, renderAllergen }) => {
const { description, imageUrl, tags_list = [], allergens_list = [] } = builtItem;
const imageProps = (0, utils_1.makeImageProps)(config, 'item__image', imageUrl, apiUrl);
const hasLinks = hasCals || hasIngredients || hasInstructions;
const hasTags = tags_list.length > 0;
const hasAllergens = allergens_list.length > 0;
const hasTagsAllergens = hasTags || hasAllergens;
const showInfoFooter = hasTagsAllergens || hasLinks;
return (react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__header')),
react_1.default.createElement(components_1.View, Object.assign({}, imageProps)),
react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__info')),
react_1.default.createElement(ItemTitleView_1.default, { config: config, builtItem: builtItem }),
description && (react_1.default.createElement(components_1.Text, Object.assign({}, (0, utils_1.makeProps)(config, 'item__description'), { text: description }))),
showInfoFooter && (react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__extras')),
hasTagsAllergens && (react_1.default.createElement(ItemTagsAllergensView_1.default, { config: config, tags: tags_list, allergens: allergens_list, renderTag: renderTag, renderAllergen: renderAllergen })),
hasLinks && (react_1.default.createElement(components_1.View, Object.assign({}, (0, utils_1.makeProps)(config, 'item__links')),
hasInstructions && (react_1.default.createElement(react_1.default.Fragment, null,
renderButtonLink('Name', handlers.toggleName),
renderButtonLink('Special Instructions', handlers.toggleInstructions))),
hasCals &&
renderButtonLink('Nutritional Info', handlers.toggleNutrition),
hasIngredients &&
renderButtonLink('Ingredients', handlers.toggleIngredients)))))),
react_1.default.createElement(ItemTogglesView_1.default, { config: config, renderQuantity: renderQuantity })));
};
exports.default = ItemHeaderView;