UNPKG

923 BJavaScriptView Raw
1import React from 'react';
2import PropTypes from 'prop-types';
3import classNames from 'classnames';
4import { mapToCssModules, tagPropType } from './utils';
5
6const propTypes = {
7 tag: tagPropType,
8 type: PropTypes.string,
9 className: PropTypes.string,
10 cssModule: PropTypes.object,
11 children: PropTypes.node,
12};
13
14const defaultProps = {
15 tag: 'button',
16 type: 'button'
17};
18
19const NavbarToggler = (props) => {
20 const {
21 className,
22 cssModule,
23 children,
24 tag: Tag,
25 ...attributes
26 } = props;
27
28 const classes = mapToCssModules(classNames(
29 className,
30 'navbar-toggler'
31 ), cssModule);
32
33 return (
34 <Tag aria-label="Toggle navigation" {...attributes} className={classes}>
35 {children || <span className={mapToCssModules('navbar-toggler-icon', cssModule)} />}
36 </Tag>
37 );
38};
39
40NavbarToggler.propTypes = propTypes;
41NavbarToggler.defaultProps = defaultProps;
42
43export default NavbarToggler;