UNPKG

826 BJavaScriptView Raw
1import React from 'react';
2import PropTypes from 'prop-types';
3import classNames from 'classnames';
4import { mapToCssModules, tagPropType } from './utils';
5
6const propTypes = {
7 /** Add active class to element */
8 active: PropTypes.bool,
9 /** Add custom class */
10 className: PropTypes.string,
11 /** Change underlying component's CSS base class name */
12 cssModule: PropTypes.object,
13 /** Set a custom element for this component */
14 tag: tagPropType,
15};
16
17function NavItem(props) {
18 const {
19 className,
20 cssModule,
21 active,
22 tag: Tag = 'li',
23 ...attributes
24 } = props;
25
26 const classes = mapToCssModules(
27 classNames(className, 'nav-item', active ? 'active' : false),
28 cssModule,
29 );
30
31 return <Tag {...attributes} className={classes} />;
32}
33
34NavItem.propTypes = propTypes;
35
36export default NavItem;
37
\No newline at end of file