UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

54 lines (50 loc) 1.55 kB
/** * MSKCC 2021, 2024 */ import { extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js'; import { Settings } from '@carbon/icons-react'; import cx from 'classnames'; import PropTypes from 'prop-types'; import React__default from 'react'; import { usePrefix } from '../../internal/usePrefix.js'; import OverflowMenu from '../OverflowMenu/index.js'; const defaultIconDescription = 'Settings'; const TableToolbarMenu = _ref => { let { className, renderIcon, iconDescription = defaultIconDescription, children, ...rest } = _ref; const prefix = usePrefix(); const toolbarActionClasses = cx(className, `${prefix}--toolbar-action ${prefix}--overflow-menu`); return /*#__PURE__*/React__default.createElement(OverflowMenu, _extends({ "aria-label": iconDescription, renderIcon: renderIcon, className: toolbarActionClasses, title: iconDescription, iconDescription: iconDescription, flipped: true }, rest), children); }; TableToolbarMenu.defaultProps = { renderIcon: Settings, iconDescription: defaultIconDescription }; TableToolbarMenu.propTypes = { children: PropTypes.node.isRequired, /** * Provide an optional class name for the toolbar menu */ className: PropTypes.string, /** * The description of the menu icon. */ iconDescription: PropTypes.string.isRequired, /** * Optional prop to allow overriding the default menu icon */ renderIcon: PropTypes.oneOfType([PropTypes.func, PropTypes.object]) }; export { TableToolbarMenu as default };