Dashboard sipadu mbip
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

DropdownMenu.js 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import classNames from 'classnames';
  4. import { findDOMNode } from 'react-dom';
  5. import React, { useContext } from 'react';
  6. import BaseDropdownMenu from 'react-overlays/DropdownMenu';
  7. import NavbarContext from './NavbarContext';
  8. import { useBootstrapPrefix } from './ThemeProvider';
  9. var wrapRef = function wrapRef(props) {
  10. var ref = props.ref;
  11. props.ref = ref.__wrapped || (ref.__wrapped = function (r) {
  12. return ref(findDOMNode(r));
  13. });
  14. return props;
  15. };
  16. var defaultProps = {
  17. alignRight: false,
  18. flip: true
  19. };
  20. var DropdownMenu = React.forwardRef(function (_ref, ref) {
  21. var bsPrefix = _ref.bsPrefix,
  22. className = _ref.className,
  23. alignRight = _ref.alignRight,
  24. rootCloseEvent = _ref.rootCloseEvent,
  25. flip = _ref.flip,
  26. popperConfig = _ref.popperConfig,
  27. showProps = _ref.show,
  28. _ref$as = _ref.as,
  29. Component = _ref$as === void 0 ? 'div' : _ref$as,
  30. props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "alignRight", "rootCloseEvent", "flip", "popperConfig", "show", "as"]);
  31. var isNavbar = useContext(NavbarContext);
  32. var prefix = useBootstrapPrefix(bsPrefix, 'dropdown-menu');
  33. return React.createElement(BaseDropdownMenu, {
  34. ref: ref // FIXME: the ref situation is out of hand here
  35. ,
  36. flip: flip,
  37. show: showProps,
  38. alignEnd: alignRight,
  39. usePopper: !isNavbar,
  40. popperConfig: popperConfig,
  41. rootCloseEvent: rootCloseEvent
  42. }, function (_ref2) {
  43. var placement = _ref2.placement,
  44. show = _ref2.show,
  45. alignEnd = _ref2.alignEnd,
  46. close = _ref2.close,
  47. menuProps = _ref2.props;
  48. wrapRef(menuProps); // For custom components provide additional, non-DOM, props;
  49. if (typeof Component !== 'string') {
  50. menuProps.show = show;
  51. menuProps.close = close;
  52. menuProps.alignRight = alignEnd;
  53. }
  54. var style = props.style;
  55. if (placement) {
  56. // we don't need the default popper style,
  57. // menus are display: none when not shown.
  58. style = _extends({}, style, {}, menuProps.style);
  59. props['x-placement'] = placement;
  60. }
  61. return React.createElement(Component, _extends({}, props, menuProps, {
  62. style: style,
  63. className: classNames(className, prefix, show && 'show', alignEnd && prefix + "-right")
  64. }));
  65. });
  66. });
  67. DropdownMenu.displayName = 'DropdownMenu';
  68. DropdownMenu.defaultProps = defaultProps;
  69. export default DropdownMenu;