Files
zero-fucks-given/apps/admin/src/app/layouts/04__TwoColumnSidebar/components/Header.tsx
T
2026-09-02 12:40:49 +03:00

42 lines
1.6 KiB
TypeScript
Executable File

import { Menu } from 'lucide-react';
import { useEffect, useState } from 'react';
import { useLocation } from 'react-router-dom';
import { Button } from '#shared/ui/Button';
import { Sheet, SheetBody, SheetContent, SheetHeader, SheetTrigger } from '#shared/ui/Sheet';
import { Container } from '#shared/widgets/common/Container';
import { AppLogo } from '../../shared';
import { SidebarPrimary } from './SidebarPrimary';
import { SidebarSecondary } from './SidebarSecondary';
export function Header() {
const [isSheetOpen, setIsSheetOpen] = useState(false);
const { pathname } = useLocation();
useEffect(() => {
setIsSheetOpen(false);
}, [pathname]);
return (
<header className="fixed start-0 end-0 top-0 z-10 flex h-(--header-height) shrink-0 items-center bg-(--page-bg) lg:hidden dark:bg-(--page-bg-dark)">
<Container className="flex flex-wrap items-center justify-between gap-3">
<AppLogo className="size-7.5" />
<Sheet open={isSheetOpen} onOpenChange={setIsSheetOpen}>
<SheetTrigger asChild>
<Button variant="ghost" mode="icon" className="-ms-2 lg:hidden">
<Menu />
</Button>
</SheetTrigger>
<SheetContent className="w-(--sidebar-width) gap-0 p-0" side="left" close={false}>
<SheetHeader className="space-y-0 p-0" />
<SheetBody className="flex shrink-0 items-stretch overflow-y-auto p-0">
<SidebarPrimary />
<SidebarSecondary />
</SheetBody>
</SheetContent>
</Sheet>
</Container>
</header>
);
}