"use client"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { LogOut, User, Settings, Shield, Coins, Copy as CopyIcon, Info, CreditCard } from "lucide-react"; // Renamed Copy to CopyIcon, Added CreditCard import { useRouter } from "next/navigation"; import { useToast } from "@/hooks/use-toast"; import { logoutUser, type LoggedInUser } from "@/lib/actions/auth"; import { useState } from "react"; import { Loader2 } from "lucide-react"; import { CopyButton } from "@/components/ui/CopyButton"; // Import CopyButton import { Badge } from "@/components/ui/badge"; export interface UserNavProps { user: LoggedInUser | null; } export function UserNav({ user }: UserNavProps) { const router = useRouter(); const { toast } = useToast(); const [isLoggingOut, setIsLoggingOut] = useState(false); const handleLogout = async () => { setIsLoggingOut(true); try { await logoutUser(); } catch (error: any) { if (error.message?.includes('NEXT_REDIRECT')) { // Expected } else { toast({ title: "Logout Failed", description: error.message || "Failed to logout.", variant: "destructive" }); } } finally { setIsLoggingOut(false); } }; const getAvatarFallback = () => { if (user?.name) { const nameParts = user.name.split(" "); if (nameParts.length > 1 && nameParts[0] && nameParts[1]) { return nameParts[0][0].toUpperCase() + nameParts[1][0].toUpperCase(); } return user.name.substring(0, 2).toUpperCase(); } return "U"; }; return ( {user ? ( <>

{user.name}

{user.email}

{user.role === 'admin' && (

Administrator

)}
{user.coins.toLocaleString()} Coins
{user.referralCode && user.referralCode !== 'N/A' && (
Referral Code:
{user.referralCode}
)} router.push('/dashboard/profile')}> Profile router.push('/dashboard/buy-coins')}> Buy Coins router.push('/dashboard/settings')} disabled> Settings Soon {user.role === 'admin' && ( router.push('/admin/dashboard')}> Admin Panel )}
{isLoggingOut ? : } Log out ) : ( <>

Guest

Not logged in

router.push('/login')}> Login router.push('/admin/login')}> Admin Login )}
); }