@open-tender/ui
Version:
A component library for use with the Open Tender web app
23 lines (22 loc) • 1.87 kB
JavaScript
import React from 'react';
import { Text, View } from '../components';
import { makeProps } from '../utils';
const Category = ({ config, category, renderHeader, renderCategoryNav, renderCategoryItem }) => {
const { name, description, items, children } = category;
return (React.createElement(React.Fragment, null,
renderHeader(),
renderCategoryNav(),
React.createElement(View, Object.assign({}, makeProps(config, 'category')),
React.createElement(View, Object.assign({}, makeProps(config, 'category__header')),
React.createElement(View, Object.assign({}, makeProps(config, 'category__headerContainer')),
React.createElement(Text, Object.assign({}, makeProps(config, 'category__title'), { text: name })),
description && (React.createElement(Text, Object.assign({}, makeProps(config, 'category__subtitle'), { text: description }))))),
React.createElement(View, Object.assign({}, makeProps(config, 'category__content')),
React.createElement(View, Object.assign({}, makeProps(config, 'category__items')), items.map(item => renderCategoryItem(item))),
children.map(child => (React.createElement(React.Fragment, null,
React.createElement(View, Object.assign({ key: child.id }, makeProps(config, 'category__childHeader')),
React.createElement(Text, Object.assign({}, makeProps(config, 'category__childTitle'), { text: child.name })),
child.description && (React.createElement(Text, Object.assign({}, makeProps(config, 'category__childSubtitle'), { text: child.description })))),
React.createElement(View, Object.assign({}, makeProps(config, 'category__items')), child.items.map(item => renderCategoryItem(item))))))))));
};
export default Category;