UNPKG

@appbuckets/react-ui

Version:
64 lines (61 loc) 1.79 kB
import { __rest, __assign } from 'tslib'; import * as React from 'react'; import clsx from 'clsx'; import { useElementType, childrenUtils } from '@appbuckets/react-ui-core'; import { useSharedClassName } from '../utils/customHook.js'; import '../BucketTheme/BucketTheme.js'; import { useWithDefaultProps } from '../BucketTheme/BucketContext.js'; /* -------- * Component Import to avoid Circular Dependencies * -------- */ var Item = null; import('./Item.js').then(function (_a) { var itemComponent = _a.default; Item = itemComponent; }); /* -------- * Component Render * -------- */ var ItemGroup = function (receivedProps) { var props = useWithDefaultProps('itemGroup', receivedProps); var _a = useSharedClassName(props), className = _a.className, _b = _a.rest, children = _b.children; _b.content; var divided = _b.divided, items = _b.items, relaxed = _b.relaxed, rest = __rest(_b, ['children', 'content', 'divided', 'items', 'relaxed']); /** Get the component element type */ var ElementType = useElementType(ItemGroup, receivedProps, props); /** Build the element class list */ var classes = clsx( { divided: divided, relaxed: relaxed }, 'items', className ); /** If children are declared, render them */ if (!childrenUtils.isNil(children)) { return React.createElement( ElementType, __assign({}, rest, { className: classes }), children ); } return React.createElement( ElementType, __assign({}, rest, { className: classes }), items && items.map(function (item) { return ( Item && Item.create(item, { autoGenerateKey: false, }) ); }) ); }; ItemGroup.displayName = 'ItemGroup'; export { ItemGroup as default };