UNPKG

@awsui/components-react

Version:

AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A

23 lines (22 loc) 2.34 kB
import React from 'react'; import ItemElement from './item-element/item-element'; import ExpandableCategoryElement from './category-elements/expandable-category-element'; import CategoryElement from './category-elements/category-element'; import { isItemGroup } from './utils/utils'; import { useMobile } from '../internal/hooks/use-mobile'; import MobileExpandableCategoryElement from './category-elements/mobile-expandable-category-element'; export default function ItemsList(_a) { var items = _a.items, onItemActivate = _a.onItemActivate, expandedItem = _a.expandedItem, highlightedItem = _a.highlightedItem, onItemClick = _a.onItemClick, _b = _a.categoryDisabled, categoryDisabled = _b === void 0 ? false : _b, _c = _a.hasExpandableGroups, hasExpandableGroups = _c === void 0 ? false : _c, _d = _a.hasCategoryHeader, hasCategoryHeader = _d === void 0 ? false : _d, _e = _a.allowHref, allowHref = _e === void 0 ? false : _e; var isMobile = useMobile(); var elements = (items || []).map(function (item, index) { if (!isItemGroup(item)) { return (React.createElement(ItemElement, { key: index, item: item, onItemActivate: onItemActivate, disabled: item.disabled || categoryDisabled, highlighted: item === highlightedItem, last: index === items.length - 1 || isItemGroup(items[index + 1]), hasCategoryHeader: hasCategoryHeader, allowHref: allowHref })); } var disabled = item.disabled || (isItemGroup(item) && item.items.every(function (item) { return item.disabled; })) || false; if (hasExpandableGroups) { return item.text ? (isMobile ? (React.createElement(MobileExpandableCategoryElement, { key: index, item: item, onItemActivate: onItemActivate, expandedItem: expandedItem, highlightedItem: highlightedItem, disabled: disabled, onItemClick: onItemClick })) : (React.createElement(ExpandableCategoryElement, { key: index, item: item, onItemActivate: onItemActivate, expandedItem: expandedItem, highlightedItem: highlightedItem, disabled: disabled, onItemClick: onItemClick }))) : null; } return (React.createElement(CategoryElement, { key: index, item: item, onItemActivate: onItemActivate, expandedItem: expandedItem, highlightedItem: highlightedItem, disabled: disabled })); }); return React.createElement(React.Fragment, null, elements); }