import { useState } from 'react' import { Link } from '@tanstack/react-router' import { User, Wallet, LogOut, Settings } from 'lucide-react' import { useTranslation } from 'react-i18next' import { useAuthStore } from '@/stores/auth-store' import { ROLE } from '@/lib/roles' import useDialogState from '@/hooks/use-dialog' import { useUserDisplay } from '@/hooks/use-user-display' import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { Button } from '@/components/ui/button' import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger, SheetClose, } from '@/components/ui/sheet' import { SignOutDialog } from '@/components/sign-out-dialog' export function ProfileDropdown() { const { t } = useTranslation() const [open, setOpen] = useDialogState() const [sheetOpen, setSheetOpen] = useState(false) const user = useAuthStore((state) => state.auth.user) const { displayName, initials, roleLabel } = useUserDisplay(user) const isSuperAdmin = user?.role === ROLE.SUPER_ADMIN return ( <> {initials} {t('User Menu')} {/* User info section */} {initials} {displayName} {roleLabel} {user?.group && ( <> ยท {String(user.group)} > )} {/* Navigation links */} {t('Profile')} {t('Wallet')} {/* System Settings - only for super admin */} {isSuperAdmin && ( {t('System Settings')} )} {/* Sign out */} { setSheetOpen(false) setOpen(true) }} className='text-destructive hover:text-destructive/80 h-auto w-full justify-start gap-2.5 p-2.5 hover:bg-transparent' > {t('Sign out')} > ) }
{displayName}