1 | import _extends from "@babel/runtime/helpers/esm/extends";
|
2 | import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
3 | var _excluded = ["as", "bsPrefix", "variant", "fill", "justify", "navbar", "navbarScroll", "className", "children", "activeKey"];
|
4 | import classNames from 'classnames';
|
5 | import all from 'prop-types-extra/lib/all';
|
6 | import React, { useContext } from 'react';
|
7 | import { useUncontrolled } from 'uncontrollable';
|
8 | import { useBootstrapPrefix } from './ThemeProvider';
|
9 | import NavbarContext from './NavbarContext';
|
10 | import CardContext from './CardContext';
|
11 | import AbstractNav from './AbstractNav';
|
12 | import NavItem from './NavItem';
|
13 | import NavLink from './NavLink';
|
14 | var defaultProps = {
|
15 | justify: false,
|
16 | fill: false
|
17 | };
|
18 | var Nav = React.forwardRef(function (uncontrolledProps, ref) {
|
19 | var _classNames;
|
20 |
|
21 | var _useUncontrolled = useUncontrolled(uncontrolledProps, {
|
22 | activeKey: 'onSelect'
|
23 | }),
|
24 | _useUncontrolled$as = _useUncontrolled.as,
|
25 | as = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,
|
26 | initialBsPrefix = _useUncontrolled.bsPrefix,
|
27 | variant = _useUncontrolled.variant,
|
28 | fill = _useUncontrolled.fill,
|
29 | justify = _useUncontrolled.justify,
|
30 | navbar = _useUncontrolled.navbar,
|
31 | navbarScroll = _useUncontrolled.navbarScroll,
|
32 | className = _useUncontrolled.className,
|
33 | children = _useUncontrolled.children,
|
34 | activeKey = _useUncontrolled.activeKey,
|
35 | props = _objectWithoutPropertiesLoose(_useUncontrolled, _excluded);
|
36 |
|
37 | var bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');
|
38 | var navbarBsPrefix;
|
39 | var cardHeaderBsPrefix;
|
40 | var isNavbar = false;
|
41 | var navbarContext = useContext(NavbarContext);
|
42 | var cardContext = useContext(CardContext);
|
43 |
|
44 | if (navbarContext) {
|
45 | navbarBsPrefix = navbarContext.bsPrefix;
|
46 | isNavbar = navbar == null ? true : navbar;
|
47 | } else if (cardContext) {
|
48 | cardHeaderBsPrefix = cardContext.cardHeaderBsPrefix;
|
49 | }
|
50 |
|
51 | return React.createElement(AbstractNav, _extends({
|
52 | as: as,
|
53 | ref: ref,
|
54 | activeKey: activeKey,
|
55 | className: classNames(className, (_classNames = {}, _classNames[bsPrefix] = !isNavbar, _classNames[navbarBsPrefix + "-nav"] = isNavbar, _classNames[navbarBsPrefix + "-nav-scroll"] = isNavbar && navbarScroll, _classNames[cardHeaderBsPrefix + "-" + variant] = !!cardHeaderBsPrefix, _classNames[bsPrefix + "-" + variant] = !!variant, _classNames[bsPrefix + "-fill"] = fill, _classNames[bsPrefix + "-justified"] = justify, _classNames))
|
56 | }, props), children);
|
57 | });
|
58 | Nav.displayName = 'Nav';
|
59 | Nav.defaultProps = defaultProps;
|
60 | Nav.Item = NavItem;
|
61 | Nav.Link = NavLink;
|
62 | export default Nav; |
\ | No newline at end of file |