stitch-ui
Version:
39 lines (32 loc) • 944 B
JavaScript
// TODO proptypes
/* eslint-disable react/prop-types */
import React from "react";
import { withRouter, NavLink } from "react-router-dom";
import classNames from "classnames";
function NavItem(props) {
const {
onlyActiveOnIndex,
to,
router,
linkClassName,
activeLinkClassName
} = props;
const isActive = router && router.isActive(to, onlyActiveOnIndex);
const activeClassName = props.activeClassName || "active";
const propsCopy = Object.assign({}, props);
delete propsCopy.router;
delete propsCopy.className;
delete propsCopy.linkClassName;
delete propsCopy.activeLinkClassName;
propsCopy.className = classNames(linkClassName || "", {
[activeLinkClassName || ""]: isActive
});
return (
<li className={`${props.className} ${isActive ? activeClassName : ""}`}>
<NavLink {...propsCopy}>
{props.children}
</NavLink>
</li>
);
}
export default withRouter(NavItem);