UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

36 lines (33 loc) 1.85 kB
import { __rest } from '../../node_modules/tslib/tslib.es6.js'; import React, { forwardRef, useContext } from 'react'; import PropTypes from 'prop-types'; import classNames from '../../_virtual/index.js'; import { CConditionalPortal } from '../conditional-portal/CConditionalPortal.js'; import { CDropdownContext } from './CDropdownContext.js'; import '@popperjs/core'; import { useForkedRef } from '../../hooks/useForkedRef.js'; import { getAlignmentClassNames } from './utils.js'; const CDropdownMenu = forwardRef((_a, ref) => { var { children, as: Component = 'ul', className } = _a, rest = __rest(_a, ["children", "as", "className"]); const { alignment, container, dark, dropdownMenuRef, popper, portal, visible } = useContext(CDropdownContext); const forkedRef = useForkedRef(ref, dropdownMenuRef); return (React.createElement(CConditionalPortal, { container: container, portal: portal !== null && portal !== void 0 ? portal : false }, React.createElement(Component, Object.assign({ className: classNames('dropdown-menu', { show: visible, }, alignment && getAlignmentClassNames(alignment), className), ref: forkedRef, role: "menu" }, (!popper && { 'data-coreui-popper': 'static' }), (dark && { 'data-coreui-theme': 'dark' }), rest), Component === 'ul' ? React.Children.map(children, (child, index) => { if (React.isValidElement(child)) { return React.createElement("li", { key: index }, React.cloneElement(child)); } return; }) : children))); }); CDropdownMenu.propTypes = { as: PropTypes.elementType, children: PropTypes.node, className: PropTypes.string, }; CDropdownMenu.displayName = 'CDropdownMenu'; export { CDropdownMenu }; //# sourceMappingURL=CDropdownMenu.js.map