UNPKG

active-link-nextjs

Version:

React hook to use with nextjs router to auto apply active class on active link

24 lines (23 loc) 870 B
import { useRouter } from "next/router.js"; export const useActiveRouter = (config) => { const router = useRouter(); const registerRoute = (path, configOverride) => { const classes = []; const href = "/" + path.join("/"); const currentPath = router.asPath; if (currentPath !== href) { return { href, className: "" }; } if (configOverride === null || configOverride === void 0 ? void 0 : configOverride.activeClass) { classes.push(configOverride.activeClass); } else if (config === null || config === void 0 ? void 0 : config.activeClass) { classes.push(config.activeClass); } else { classes.push("active"); // Default class name } return { href, className: classes.join(" ") }; }; return { registerRoute }; };