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 |
|
20 | var _useUncontrolled = useUncontrolled(uncontrolledProps, {
|
21 | activeKey: 'onSelect'
|
22 | }),
|
23 | _useUncontrolled$as = _useUncontrolled.as,
|
24 | as = _useUncontrolled$as === void 0 ? 'div' : _useUncontrolled$as,
|
25 | initialBsPrefix = _useUncontrolled.bsPrefix,
|
26 | variant = _useUncontrolled.variant,
|
27 | fill = _useUncontrolled.fill,
|
28 | justify = _useUncontrolled.justify,
|
29 | navbar = _useUncontrolled.navbar,
|
30 | className = _useUncontrolled.className,
|
31 | children = _useUncontrolled.children,
|
32 | activeKey = _useUncontrolled.activeKey,
|
33 | props = _objectWithoutPropertiesLoose(_useUncontrolled, ["as", "bsPrefix", "variant", "fill", "justify", "navbar", "className", "children", "activeKey"]);
|
34 |
|
35 | var bsPrefix = useBootstrapPrefix(initialBsPrefix, 'nav');
|
36 | var navbarBsPrefix;
|
37 | var cardHeaderBsPrefix;
|
38 | var isNavbar = false;
|
39 | var navbarContext = useContext(NavbarContext);
|
40 | var cardContext = useContext(CardContext);
|
41 |
|
42 | if (navbarContext) {
|
43 | navbarBsPrefix = navbarContext.bsPrefix;
|
44 | isNavbar = navbar == null ? true : navbar;
|
45 | } else if (cardContext) {
|
46 | cardHeaderBsPrefix = cardContext.cardHeaderBsPrefix;
|
47 | }
|
48 |
|
49 | return React.createElement(AbstractNav, _extends({
|
50 | as: as,
|
51 | ref: ref,
|
52 | activeKey: activeKey,
|
53 | className: classNames(className, (_classNames = {}, _classNames[bsPrefix] = !isNavbar, _classNames[navbarBsPrefix + "-nav"] = isNavbar, _classNames[cardHeaderBsPrefix + "-" + variant] = !!cardHeaderBsPrefix, _classNames[bsPrefix + "-" + variant] = !!variant, _classNames[bsPrefix + "-fill"] = fill, _classNames[bsPrefix + "-justified"] = justify, _classNames))
|
54 | }, props), children);
|
55 | });
|
56 | Nav.displayName = 'Nav';
|
57 | Nav.defaultProps = defaultProps;
|
58 | Nav.Item = NavItem;
|
59 | Nav.Link = NavLink;
|
60 | export default Nav; |
\ | No newline at end of file |