Files
zhimingge/components/header.tsx
T
dekun fff77dac3f Implement three divination modes, learn pages, and PM2 deploy on port 3130.
Add liuyao/bazi/combined flows with shared calc and AI infrastructure, 64-gua learn routes, and update Ubuntu PM2 deployment docs for port 3130.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 20:19:49 +08:00

55 lines
1.6 KiB
TypeScript

"use client";
import Link from "next/link";
import { usePathname } from "next/navigation";
import { ChatGPT } from "@/components/svg";
import { ModeToggle } from "@/components/mode-toggle";
const NAV_ITEMS = [
{ href: "/learn", label: "易经学习" },
{ href: "/liuyao", label: "六爻算卦" },
{ href: "/bazi", label: "生辰八字" },
{ href: "/combined", label: "综合测算" },
];
function NavLink({ href, label }: { href: string; label: string }) {
const pathname = usePathname();
const active =
href === "/"
? pathname === "/"
: pathname === href || pathname.startsWith(`${href}/`);
return (
<Link
href={href}
className={`whitespace-nowrap text-sm transition-colors ${
active
? "font-medium text-foreground"
: "text-muted-foreground hover:text-foreground"
}`}
>
{label}
</Link>
);
}
export default function Header() {
return (
<header className="bg-secondary py-2 shadow">
<div className="mx-auto flex w-full max-w-4xl flex-col gap-2 px-4 sm:flex-row sm:items-center sm:justify-between">
<Link href="/" className="flex items-center justify-center gap-2 sm:justify-start">
<ChatGPT />
<span className="font-medium"></span>
</Link>
<nav className="flex flex-wrap items-center justify-center gap-x-4 gap-y-1">
{NAV_ITEMS.map((item) => (
<NavLink key={item.href} {...item} />
))}
</nav>
<div className="flex justify-center sm:justify-end">
<ModeToggle />
</div>
</div>
</header>
);
}