@wener/console
Version:
Base console UI toolkit
32 lines (31 loc) • 1.11 kB
JavaScript
import React, { forwardRef, useEffect, useState } from "react";
import Link from "next/link";
import { useRouter } from "next/router";
export const NextNavLink = /* @__PURE__ */ /*#__PURE__*/ forwardRef(({ children, className, ...props }, ref)=>{
const { asPath, isReady } = useRouter();
const [isActive, setActive] = useState(false);
useEffect(()=>{
if (isReady) {
const linkPathname = new URL(props.as || props.href, location.href).pathname;
const activePathname = new URL(asPath, location.href).pathname;
setActive(linkPathname === activePathname);
}
}, [
asPath,
isReady,
props.as,
props.href
]);
return /*#__PURE__*/ React.createElement(Link, {
...props,
legacyBehavior: true,
ref: ref
}, /*#__PURE__*/ React.createElement("a", {
className: typeof className === 'function' ? className({
isActive
}) : className
}, typeof children === 'function' ? children({
isActive
}) : children));
});
//# sourceMappingURL=NextNavLink.js.map