'use client' import { useMemo } from 'react' import Link from 'next/link' import Image from 'next/image' 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 } from 'next-auth/react' import { Routes } from '@/config/routes' import ThemeToggle from './theme-toggle' import { Session } from 'next-auth' export default function AppHeader({ session }: { session: Session }) { const router = useRouter() const handleLogout = () => { signOut() router.push(Routes.login) } const isAuthenticated = useMemo( () => session?.user, [session?.user] ) const AuthenticatedMenu = () => ( {session.user?.name?.charAt(0)} {session.user?.name?.split(' ')[0]} {session.user?.name} {session.user?.email} Dashboard Log out ) const MobileMenu = () => ( Toggle menu {isAuthenticated ? ( <> {session.user?.name?.charAt(0)} {session.user?.name} {session.user?.email} Dashboard Contribute Log out > ) : ( <> Log in Get started > )} ) return ( textbee .dev Contribute {isAuthenticated ? ( ) : ( Log in Get started )} ) }