File size: 1,311 Bytes
703a33a | 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 44 45 46 47 | import type { NavLink } from "../content/types";
interface TopNavProps {
links: NavLink[];
secondaryLinks: NavLink[];
demoMode: boolean;
}
export function TopNav({ links, secondaryLinks, demoMode }: TopNavProps) {
return (
<header className="topnav shell-block" id="top">
<div className="brand-block">
<div className="brand-mark" aria-hidden="true">
<span />
<span />
</div>
<div>
<p className="brand-name">AetherOps</p>
<p className="brand-subtitle">Aether Voice Studio</p>
</div>
</div>
<nav className="primary-nav" aria-label="Primary">
{links.map((link) => (
<a key={link.label} href={link.href}>
{link.label}
</a>
))}
</nav>
<div className="nav-meta">
<span className={`mode-chip ${demoMode ? "demo" : "live"}`}>
{demoMode ? "DEMO_MODE" : "LIVE_MODE"}
</span>
{secondaryLinks.map((link) => (
<a
key={link.label}
href={link.href}
target={link.href.startsWith("http") ? "_blank" : undefined}
rel={link.href.startsWith("http") ? "noreferrer" : undefined}
>
{link.label}
</a>
))}
</div>
</header>
);
}
|