blob: 7518e3c740c56743697c8f1ec9f0cad2b6789d86 (
plain) (
blame)
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
|
import { Icon } from "$/ui/objects/Icon.tsx";
import { nav } from "../../data/nav.ts";
import { Navbar } from "../objects/Navbar.tsx";
import { NavbarItem } from "../objects/NavbarItem.tsx";
export interface Props {
url: string;
}
export const SiteNav = ({ url }: Props) => {
const navItems = nav
.filter((item) => !item.hidden)
.map((item) => ({
...item,
selected: item.url === "/" ? item.url === url : new RegExp(`^${item.url}`).test(url),
}));
return (
<>
<div class="c-site-nav-placeholder"></div>
<footer class="c-site-nav">
<Navbar aria-label="Mainmenu" quiet variant="static-white">
{navItems.map((item) => (
<NavbarItem
href={item.url}
icon={<Icon icon={item.icon} variant={item.selected ? "fill" : "regular"} />}
selected={item.selected}
>
{item.label}
</NavbarItem>
))}
</Navbar>
</footer>
</>
);
};
|