Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Nav.js 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 all from 'prop-types-extra/lib/all';
  5. import React, { useContext } from 'react';
  6. import { useUncontrolled } from 'uncontrollable';
  7. import { useBootstrapPrefix } from './ThemeProvider';
  8. import NavbarContext from './NavbarContext';
  9. import CardContext from './CardContext';
  10. import AbstractNav from './AbstractNav';
  11. import NavItem from './NavItem';
  12. import NavLink from './NavLink';
  13. var defaultProps = {
  14. justify: false,
  15. fill: false
  16. };
  17. var Nav = React.forwardRef(function (uncontrolledProps, ref) {
  18. var _classNames;
  19. var _useUncontrolled = useUncontrolled(uncontrolledProps, {
  20. activeKey: 'onSelect'
  21. }),
  22. _useUncontrolled$as = _useUncontrolled.as,
  23. as = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,
  24. bsPrefix = _useUncontrolled.bsPrefix,
  25. variant = _useUncontrolled.variant,
  26. fill = _useUncontrolled.fill,
  27. justify = _useUncontrolled.justify,
  28. navbar = _useUncontrolled.navbar,
  29. className = _useUncontrolled.className,
  30. children = _useUncontrolled.children,
  31. activeKey = _useUncontrolled.activeKey,
  32. props = _objectWithoutPropertiesLoose(_useUncontrolled, ["as", "bsPrefix", "variant", "fill", "justify", "navbar", "className", "children", "activeKey"]);
  33. bsPrefix = useBootstrapPrefix(bsPrefix, 'nav');
  34. var navbarBsPrefix, cardHeaderBsPrefix;
  35. var navbarContext = useContext(NavbarContext);
  36. var cardContext = useContext(CardContext);
  37. if (navbarContext) {
  38. navbarBsPrefix = navbarContext.bsPrefix;
  39. navbar = navbar == null ? true : navbar;
  40. } else if (cardContext) {
  41. cardHeaderBsPrefix = cardContext.cardHeaderBsPrefix;
  42. }
  43. return React.createElement(AbstractNav, _extends({
  44. as: as,
  45. ref: ref,
  46. activeKey: activeKey,
  47. className: classNames(className, (_classNames = {}, _classNames[bsPrefix] = !navbar, _classNames[navbarBsPrefix + "-nav"] = navbar, _classNames[cardHeaderBsPrefix + "-" + variant] = !!cardHeaderBsPrefix, _classNames[bsPrefix + "-" + variant] = !!variant, _classNames[bsPrefix + "-fill"] = fill, _classNames[bsPrefix + "-justified"] = justify, _classNames))
  48. }, props), children);
  49. });
  50. Nav.displayName = 'Nav';
  51. Nav.defaultProps = defaultProps;
  52. Nav.Item = NavItem;
  53. Nav.Link = NavLink;
  54. export default Nav;