12345678910111213141516171819202122232425262728293031323334353637 |
- import { usePage } from '@inertiajs/react';
- import { ChevronsUpDown } from 'lucide-react';
- import { UserInfo } from '@/common/UserInfo';
- import { UserMenuContent } from '@/common/UserMenuContent';
- import { useIsMobile } from '@/common/hooks/useMobile';
- import { type SharedData } from '@/common/types';
- import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from '@/shadcn/dropdown-menu';
- import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '@/shadcn/sidebar';
- export function NavUser() {
- const { auth } = usePage<SharedData>().props;
- const { state } = useSidebar();
- const isMobile = useIsMobile();
- return (
- <SidebarMenu>
- <SidebarMenuItem>
- <DropdownMenu>
- <DropdownMenuTrigger asChild>
- <SidebarMenuButton size="lg" className="group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent">
- <UserInfo user={auth.user} />
- <ChevronsUpDown className="ml-auto size-4" />
- </SidebarMenuButton>
- </DropdownMenuTrigger>
- <DropdownMenuContent
- className="w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg"
- align="end"
- side={isMobile ? 'bottom' : state === 'collapsed' ? 'left' : 'bottom'}
- >
- <UserMenuContent user={auth.user} />
- </DropdownMenuContent>
- </DropdownMenu>
- </SidebarMenuItem>
- </SidebarMenu>
- );
- }
|