123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import { Link, router } from '@inertiajs/react';
- import { LogOut, Settings } from 'lucide-react';
- import { UserInfo } from '@/common/UserInfo';
- import { useMobileNavigation } from '@/common/hooks/useMobileNavigation';
- import { type User } from '@/common/types';
- import { logout } from '@/routes';
- import { edit } from '@/routes/profile';
- import { DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator } from '@/shadcn/dropdown-menu';
- interface UserMenuContentProps {
- user: User;
- }
- export function UserMenuContent({ user }: UserMenuContentProps) {
- const cleanup = useMobileNavigation();
- const handleLogout = () => {
- cleanup();
- router.flushAll();
- };
- return (
- <>
- <DropdownMenuLabel className="p-0 font-normal">
- <div className="flex items-center gap-2 px-1 py-1.5 text-left text-sm">
- <UserInfo user={user} showEmail={true} />
- </div>
- </DropdownMenuLabel>
- <DropdownMenuSeparator />
- <DropdownMenuGroup>
- <DropdownMenuItem asChild>
- <Link className="block w-full" href={edit()} as="button" prefetch onClick={cleanup}>
- <Settings className="mr-2" />
- Settings
- </Link>
- </DropdownMenuItem>
- </DropdownMenuGroup>
- <DropdownMenuSeparator />
- <DropdownMenuItem asChild>
- <Link className="block w-full" href={logout()} as="button" onClick={handleLogout}>
- <LogOut className="mr-2" />
- Log out
- </Link>
- </DropdownMenuItem>
- </>
- );
- }
|