LAYER / src /components /TopNav.tsx
Claude
Archive completed Test Bench runs to a paginated Gallery page
4df7155 unverified
Raw
History Blame Contribute Delete
1.75 kB
"use client";
import Link from "next/link";
import { usePathname } from "next/navigation";
import { FlaskConical, GalleryVerticalEnd, LayoutGrid, Newspaper, Radar } from "lucide-react";
const LINKS = [
{ href: "/pipeline", label: "Pipeline", icon: LayoutGrid },
{ href: "/briefing", label: "Briefing", icon: Newspaper },
{ href: "/testbench", label: "Test Bench", icon: FlaskConical },
{ href: "/gallery", label: "Gallery", icon: GalleryVerticalEnd },
];
export default function TopNav() {
const pathname = usePathname();
return (
<div
className="w-full flex items-center justify-center border-b border-[var(--panel-border)] glass-panel shrink-0"
style={{ height: "var(--topnav-h)" }}
>
<nav className="flex items-center gap-1 glass-pill rounded-full px-1.5 py-1">
<Link
href="/"
className="flex items-center gap-1.5 text-xs font-semibold px-3 py-1.5 rounded-full text-[var(--muted)] hover:text-white transition"
>
<Radar size={13} className="text-[var(--accent-teal)]" /> LAYER
</Link>
<span className="w-px h-4 bg-[var(--panel-border)]" />
{LINKS.map(({ href, label, icon: Icon }) => {
const active = pathname === href || pathname.startsWith(`${href}/`);
return (
<Link
key={href}
href={href}
className={`flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-full transition ${
active
? "bg-white/10 text-white"
: "text-[var(--muted)] hover:text-white"
}`}
>
<Icon size={13} /> {label}
</Link>
);
})}
</nav>
</div>
);
}