'use client' import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu' import { useCurrentUser } from '@/hooks/use-current-user' import { signOut } from 'next-auth/react' import { Book, CreditCard, LayoutDashboard, LogOut, Settings } from 'lucide-react' import Link from 'next/link' import { useRouter } from 'next/navigation' import { Button } from '@/components/ui/button' import { useEffect, useState } from 'react' export const UserButton = () => { const userButtonItems = [ { label: 'Dashboard', href: '/dashboard', icon: LayoutDashboard }, { label: 'Docs', href: '/docs', icon: Book }, { label: 'Billing', href: '/payments', icon: CreditCard }, { label: 'Settings', href: '/settings', icon: Settings } ] // Random gradient colors for Avatar const router = useRouter() const session = useCurrentUser() const onClick = () => { router.push('/register') } const Logout = () => { signOut() router.push('/login') } return ( <> {!session ? (
) : ( {/* User Avatar / Logo */} {/* Content */} {session?.name} {session?.email} {/* Main Icons */} {userButtonItems.map((item, index) => ( {item.label} ))} {/* Logout Button */} Log out )} ) } export default UserButton