-
Notifications
You must be signed in to change notification settings - Fork 190
/
Copy pathmenu-main.tsx
43 lines (39 loc) · 1.27 KB
/
menu-main.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import classNames from "classnames"
import { DrupalMenuLinkContent } from "next-drupal"
import Link from "next/link"
import { useRouter } from "next/router"
interface MenuMainProps {
items: DrupalMenuLinkContent[]
}
export function MenuMain({ items, ...props }: MenuMainProps) {
const router = useRouter()
return (
<nav {...props}>
<ul className="flex flex-col items-center justify-center w-full pt-8 space-y-6 md:pt-0 md:space-y-0 md:flex-row md:space-x-14">
{items.map((item) => {
const isActive =
router.asPath === item.url ||
`/${router.locale}${router.asPath === "/" ? "" : router.asPath}` ===
item.url ||
(item.url !== "/" ? router.asPath.indexOf(item.url) === 0 : false)
return (
<li key={item.id}>
<Link
href={item.url}
passHref
className={classNames(
"text-xl border-b-[3px] flex border-b-transparent font-serif transition-colors hover:text-primary",
{
"border-b-primary": isActive,
}
)}
>
{item.title}
</Link>
</li>
)
})}
</ul>
</nav>
)
}