UNPKG

@wener/console

Version:

Base console UI toolkit

32 lines (31 loc) 1.11 kB
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