'use client' import { useMemo } from 'react' import Link from 'next/link' import { useRouter } from 'next/navigation' import { Button } from '@/components/ui/button' import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet' import { Menu, LogOut, LayoutDashboard, MessageSquarePlus } from 'lucide-react' import { signOut, useSession } from 'next-auth/react' import { Routes } from '@/config/routes' import ThemeToggle from './theme-toggle' export default function AppHeader() { const session = useSession() const router = useRouter() const handleLogout = () => { signOut() router.push(Routes.login) } const isAuthenticated = useMemo( () => session.status === 'authenticated' && session.data?.user, [session.status, session.data?.user] ) const AuthenticatedMenu = () => ( {session.data?.user?.name?.charAt(0)} {session.data?.user?.name?.split(' ')[0]} {session.data?.user?.name} {session.data?.user?.email} Dashboard Log out ) const MobileMenu = () => ( Toggle menu {isAuthenticated ? ( <> {session.data?.user?.name?.charAt(0)} {session.data?.user?.name} {session.data?.user?.email} Dashboard Contribute Log out > ) : ( <> Log in Get started > )} ) return ( TextBee .dev Contribute {isAuthenticated ? ( ) : ( Log in Get started )} ) }