buckets/resources/js/components/AppSidebar.tsx

66 lines
1.7 KiB
TypeScript
Raw Normal View History

import { NavFooter } from '@/components/NavFooter';
import { NavMain } from '@/components/NavMain';
import { NavUser } from '@/components/NavUser';
2025-12-29 17:17:35 +01:00
import {
Sidebar,
SidebarContent,
SidebarFooter,
SidebarHeader,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
} from '@/components/ui/sidebar';
import { home } from '@/routes';
2025-12-29 17:17:35 +01:00
import { type NavItem } from '@/types';
import { Link } from '@inertiajs/react';
import { BookOpen, Folder, LayoutGrid } from 'lucide-react';
import AppLogo from './AppLogo';
2025-12-29 17:17:35 +01:00
const mainNavItems: NavItem[] = [
{
title: 'Dashboard',
href: home(),
2025-12-29 17:17:35 +01:00
icon: LayoutGrid,
},
];
const footerNavItems: NavItem[] = [
{
title: 'Repository',
href: 'https://github.com/laravel/react-starter-kit',
icon: Folder,
},
{
title: 'Documentation',
href: 'https://laravel.com/docs/starter-kits#react',
icon: BookOpen,
},
];
export function AppSidebar() {
return (
<Sidebar collapsible="icon" variant="inset">
<SidebarHeader>
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton size="lg" asChild>
<Link href={home()} prefetch>
2025-12-29 17:17:35 +01:00
<AppLogo />
</Link>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarHeader>
<SidebarContent>
<NavMain items={mainNavItems} />
</SidebarContent>
<SidebarFooter>
<NavFooter items={footerNavItems} className="mt-auto" />
<NavUser />
</SidebarFooter>
</Sidebar>
);
}