@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
30 lines • 1.46 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import React from 'react';
import InternalButtonDropdown from '../../button-dropdown/internal';
import testutilStyles from '../test-classes/styles.css.js';
const mapDrawerToItem = (drawer, isTypeCheckbox) => ({
id: drawer.id,
text: drawer.ariaLabels.drawerName,
iconName: drawer.trigger.iconName,
iconSvg: drawer.trigger.iconSvg,
badge: drawer.badge,
itemType: isTypeCheckbox ? 'checkbox' : undefined,
checked: drawer.active,
});
export default function OverflowMenu({ items: drawers, onItemClick, customTriggerBuilder, ariaLabel, globalDrawersStartIndex, }) {
const hasGlobalDrawers = globalDrawersStartIndex !== undefined;
const itemsFlatList = drawers.map((item, index) => mapDrawerToItem(item, hasGlobalDrawers && index >= globalDrawersStartIndex));
let items;
if (hasGlobalDrawers) {
items = [
{ items: itemsFlatList.slice(0, globalDrawersStartIndex) },
{ items: itemsFlatList.slice(globalDrawersStartIndex) },
];
}
else {
items = itemsFlatList;
}
return (React.createElement(InternalButtonDropdown, { items: items, className: testutilStyles['overflow-menu'], onItemClick: onItemClick, ariaLabel: ariaLabel, variant: "icon", customTriggerBuilder: customTriggerBuilder, expandToViewport: true }));
}
//# sourceMappingURL=overflow-menu.js.map