mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
19 lines
547 B
JavaScript
19 lines
547 B
JavaScript
import { withRouter } from 'next/router';
|
|
import Link from 'next/link';
|
|
import React, { Children } from 'react';
|
|
|
|
const ActiveLink = ({ router, children, ...props }) => {
|
|
const child = Children.only(children);
|
|
|
|
let className = child.props.className || '';
|
|
if (router.pathname === props.href && props.activeClassName) {
|
|
className = `${className} ${props.activeClassName}`.trim();
|
|
}
|
|
|
|
delete props.activeClassName;
|
|
|
|
return <Link {...props}>{React.cloneElement(child, { className })}</Link>;
|
|
};
|
|
|
|
export default withRouter(ActiveLink);
|