Skip to content

Commit eac7184

Browse files
authored
Add highlight to navbar showing current tab selected (#251)
1 parent 60c9ffa commit eac7184

File tree

2 files changed

+29
-12
lines changed

2 files changed

+29
-12
lines changed

src/components/navbar/NavBar.tsx

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import useMediaQuery from "@mui/material/useMediaQuery";
1515
import { signOut, useSession } from "next-auth/react";
1616
import Image from "next/image";
1717
import Link from "next/link";
18+
import { useRouter } from "next/router";
1819
import * as React from "react";
1920
import { MouseEventHandler } from "react";
2021
import $navbar from "./Navbar.module.css";
@@ -29,6 +30,7 @@ interface NavItemProps {
2930
export default function NavBar() {
3031
const [mobileOpen, setMobileOpen] = React.useState(false);
3132
const desktop = useMediaQuery("(min-width: 992px)");
33+
const router = useRouter();
3234

3335
const { status } = useSession();
3436

@@ -64,16 +66,25 @@ export default function NavBar() {
6466
</Toolbar>
6567
);
6668

67-
const NavItem = ({ href, icon, text, onClick }: NavItemProps) => (
68-
<ListItem disablePadding className={$navbar.linkItem}>
69-
<Link href={href || ""} className={$navbar.link}>
70-
{icon}
71-
<p className={$navbar.linkTitle} onClick={onClick}>
72-
{text}
73-
</p>
69+
const NavItem = ({ href, icon, text, onClick }: NavItemProps) => {
70+
const currentPath = router.pathname;
71+
const selectedPath = currentPath.includes(href as string);
72+
73+
return (
74+
<Link
75+
href={href || ""}
76+
className={`${$navbar.link}
77+
${selectedPath ? $navbar.linkSelected : ""}`}
78+
>
79+
<ListItem disablePadding className={$navbar.linkItem}>
80+
{icon}
81+
<p className={$navbar.linkTitle} onClick={onClick}>
82+
{text}
83+
</p>
84+
</ListItem>
7485
</Link>
75-
</ListItem>
76-
);
86+
);
87+
};
7788

7889
const drawer = (
7990
<div className={$navbar.sidebar}>

src/components/navbar/Navbar.module.css

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,16 @@
1313
background-color: var(--primary-40);
1414
}
1515

16-
.linkItem {
17-
padding: 1.25rem 0 1.25rem calc(45% - 1.5rem * 1.5);
18-
}
1916
.link {
2017
color: var(--on-primary);
2118
text-decoration: none;
2219
display: flex;
2320
}
2421

22+
.linkItem {
23+
padding: 1.25rem 0 1.25rem calc(45% - 1.5rem * 1.5);
24+
}
25+
2526
.linkTitle {
2627
padding-left: 1rem;
2728
}
@@ -30,9 +31,14 @@
3031
background-color: var(--primary-60);
3132
}
3233

34+
.linkSelected {
35+
background-color: var(--primary-60);
36+
}
37+
3338
.burger {
3439
color: var(--primary-99);
3540
}
41+
3642
@media (min-width: 992px) {
3743
.linkItem {
3844
padding-left: 9%;

0 commit comments

Comments
 (0)