"use client"; import { ChevronsUpDown } from "lucide-react"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar, } from "@/components/ui/sidebar"; import { IconBadgeCc, IconBell, IconCreditCard, IconLogout, IconSparkles, } from "@tabler/icons-react"; import { Profile, User } from "@/src/models/users/users.model"; export function NavUser({ user }: { user: User | null }) { const { isMobile } = useSidebar(); // Use profile data with fallbacks const firstName = user?.profile?.first_name || ""; const lastName = user?.profile?.last_name || ""; const userEmail = user?.email || ""; const userAvatar = user?.profile?.avatar || ""; const getFullName = () => { return `${firstName} ${lastName}`.trim() || "User"; }; // Generate initials for avatar fallback const getInitials = () => { if (firstName && lastName) { return `${firstName[0]}${lastName[0]}`.toUpperCase(); } if (firstName) { return firstName[0].toUpperCase(); } if (userEmail) { return userEmail[0].toUpperCase(); } return "U"; }; return ( {getInitials()}
{getFullName()} {userEmail}
{getInitials()}
{getFullName()} {userEmail}
Upgrade to Pro Account Billing Notifications Log out
); }