import type { ReactNode } from 'react'
import {
UserIcon,
SettingsIcon,
CreditCardIcon,
UsersIcon,
SquarePenIcon,
CirclePlusIcon,
LogOutIcon
} from 'lucide-react'
import { Avatar, AvatarImage, AvatarFallback } from '@/registry/new-york/ui/avatar'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger
} from '@/registry/new-york/ui/dropdown-menu'
type Props = {
trigger: ReactNode
defaultOpen?: boolean
align?: 'start' | 'center' | 'end'
}
const ProfileDropdown = ({ trigger, defaultOpen, align = 'end' }: Props) => {
return (
<DropdownMenu defaultOpen={defaultOpen}>
<DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>
<DropdownMenuContent className='w-80' align={align || 'end'}>
<DropdownMenuLabel className='flex items-center gap-4 px-4 py-2.5 font-normal'>
<div className='relative'>
<Avatar className='size-10'>
<AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-1.png' alt='John Doe' />
<AvatarFallback>JD</AvatarFallback>
</Avatar>
<span className='ring-card absolute right-0 bottom-0 block size-2 rounded-full bg-green-600 ring-2' />
</div>
<div className='flex flex-1 flex-col items-start'>
<span className='text-foreground text-lg font-semibold'>John Doe</span>
<span className='text-muted-foreground text-base'>john.doe@example.com</span>
</div>
</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem className='px-4 py-2.5 text-base'>
<UserIcon className='text-foreground size-5' />
<span>My account</span>
</DropdownMenuItem>
<DropdownMenuItem className='px-4 py-2.5 text-base'>
<SettingsIcon className='text-foreground size-5' />
<span>Settings</span>
</DropdownMenuItem>
<DropdownMenuItem className='px-4 py-2.5 text-base'>
<CreditCardIcon className='text-foreground size-5' />
<span>Billing</span>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem className='px-4 py-2.5 text-base'>
<UsersIcon className='text-foreground size-5' />
<span>Manage team</span>
</DropdownMenuItem>
<DropdownMenuItem className='px-4 py-2.5 text-base'>
<SquarePenIcon className='text-foreground size-5' />
<span>Customization</span>
</DropdownMenuItem>
<DropdownMenuItem className='px-4 py-2.5 text-base'>
<CirclePlusIcon className='text-foreground size-5' />
<span>Add team account</span>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem variant='destructive' className='px-4 py-2.5 text-base'>
<LogOutIcon className='size-5' />
<span>Logout</span>
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
)
}
export default ProfileDropdown