29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import { useRouterState } from '@tanstack/react-router';
|
|
import { Separator } from '@/components/ui/separator';
|
|
import { SidebarTrigger } from '@/components/ui/sidebar';
|
|
import { navData } from '@/lib/navData';
|
|
|
|
export function SiteHeader() {
|
|
const pathname = useRouterState({ select: state => state.location.pathname });
|
|
const allNavItems = [...navData.navMain, ...navData.navSecondary];
|
|
const currentTitle
|
|
= allNavItems.find(item =>
|
|
item.url === '/'
|
|
? pathname === '/'
|
|
: pathname.startsWith(item.url),
|
|
)?.title ?? '工作台';
|
|
|
|
return (
|
|
<header className="flex h-(--header-height) shrink-0 items-center gap-2 border-b transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-(--header-height)">
|
|
<div className="flex w-full items-center gap-1 px-4 lg:gap-2 lg:px-6">
|
|
<SidebarTrigger className="-ml-1" />
|
|
<Separator
|
|
orientation="vertical"
|
|
className="mx-2 data-[orientation=vertical]:h-4"
|
|
/>
|
|
<h1 className="text-base font-medium">{currentTitle}</h1>
|
|
</div>
|
|
</header>
|
|
);
|
|
}
|