'use client' import { CirclePlayIcon, DollarSignIcon, GraduationCapIcon, LogOutIcon, UserIcon } from 'lucide-react' import { Link } from 'react-router' import { Avatar, AvatarFallback } from '@/components/ui/avatar' import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu' import { initials } from '@/lib/utils' export function NavUser({ user }: { user: { name: string email: string scope: string } }) { const scopes = user.scope.split(' ') return ( {initials(user.name)}
{initials(user.name)}
{user.name} {user.email}
Minha conta Histórico de compras {grantIfHas(['apps:admin', 'apps:studio'], scopes, 'any') && ( <> Aplicações )} Sala de aula {grantIfHas(['apps:studio'], scopes) && ( <> EDUSEG® Estúdio )} Sair
) } function grantIfHas( required: string[], granted: string[], mode: 'all' | 'any' = 'all' ): boolean { const grantedSet: Set = new Set(granted) if (mode === 'all') { return required.every((scope) => grantedSet.has(scope)) } return required.some((scope) => grantedSet.has(scope)) }