'use client' import { useRouter } from 'next/navigation' import Link from 'next/link' import { User } from '@supabase/supabase-js' import { supabase } from '@/lib/supabase' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { Button } from '@/components/ui/button' import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { toast } from '@/components/ui/use-toast' interface UserAccountNavProps { user: User | null } export function UserAccountNav({ user }: UserAccountNavProps) { const router = useRouter() const getInitials = (name: string) => { return name .split(' ') .map((n) => n[0]) .join('') .toUpperCase() } const handleSignOut = async () => { try { await supabase.auth.signOut() toast({ title: 'Signed out', description: 'You have been signed out of your account.', }) router.push('/') router.refresh() } catch (error: any) { toast({ title: 'Error signing out', description: error.message, variant: 'destructive', }) } } if (!user) { return ( ) } // Get user metadata const fullName = user.user_metadata?.full_name || 'User' const email = user.email || '' const avatarUrl = user.user_metadata?.avatar_url return (

{fullName}

{email}

Dashboard Profile {user.app_metadata.admin && ( Admin )} Sign out
) }