UNPKG

@coreui/react-pro

Version:

UI Components Library for React.js

38 lines (34 loc) 1.92 kB
'use strict'; var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js'); var React = require('react'); var PropTypes = require('prop-types'); var index = require('../../_virtual/index.js'); var CConditionalPortal = require('../conditional-portal/CConditionalPortal.js'); var CDropdownContext = require('./CDropdownContext.js'); require('@popperjs/core'); var useForkedRef = require('../../hooks/useForkedRef.js'); var utils = require('./utils.js'); const CDropdownMenu = React.forwardRef((_a, ref) => { var { children, as: Component = 'ul', className } = _a, rest = tslib_es6.__rest(_a, ["children", "as", "className"]); const { alignment, container, dark, dropdownMenuRef, popper, portal, visible } = React.useContext(CDropdownContext.CDropdownContext); const forkedRef = useForkedRef.useForkedRef(ref, dropdownMenuRef); return (React.createElement(CConditionalPortal.CConditionalPortal, { container: container, portal: portal !== null && portal !== void 0 ? portal : false }, React.createElement(Component, Object.assign({ className: index.default('dropdown-menu', { show: visible, }, alignment && utils.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'; exports.CDropdownMenu = CDropdownMenu; //# sourceMappingURL=CDropdownMenu.js.map