'use client' import { Avatar, AvatarIcon, Button, Dropdown, DropdownMenu, DropdownItem, DropdownTrigger, Link, Navbar as NextUINavbar, NavbarContent, NavbarMenu, NavbarMenuToggle, NavbarBrand, NavbarItem, NavbarMenuItem, } from '@nextui-org/react' import { link as linkStyles } from '@nextui-org/theme' import { siteConfig } from '@/config/site' import NextLink from 'next/link' import clsx from 'clsx' import { ThemeSwitch } from '@/components/theme-switch' import { ChevronDown, GithubIcon } from '@/components/icons' import { Icon } from '@iconify/react' import NewBookmarkForm from '@/components/newBookmarkForm' import { usePathname, useRouter } from 'next/navigation' import { BookmarkCategory, User } from '@/types' import { useContext, useState } from 'react' import { BookmarkCategoryContext } from '@/app/providers' export const Navbar = ({ user, categories, }: { user: User | null categories: BookmarkCategory[] }) => { const pathname = usePathname() const { setSelectedCategory } = useContext(BookmarkCategoryContext) const [menuOpen, setMenuOpen] = useState(false) if (pathname.startsWith('/login') || pathname.startsWith('/signup')) { return <> } return ( setMenuOpen(isOpen ?? menuOpen)}> {siteConfig.navItems.map((item) => { if ( pathname.startsWith('/dashboard') && item.label === 'Dashboard' ) return return ( {item.label} ) })} {pathname.startsWith('/dashboard') && ( {categories.length > 0 ? ( categories.map((category) => ( setSelectedCategory( category.id.toString() ) }> {category.name} )) ) : ( Nothing Here )} )} {pathname.startsWith('/dashboard') && (
)}
{siteConfig.navMenuItems.map((item, index) => { if ( pathname.startsWith('/dashboard') && item.label === 'Dashboard' ) return return ( {item.label} ) })} {pathname.startsWith('/dashboard') && categories.length > 0 && categories.map((category) => ( { setMenuOpen(false) setSelectedCategory(category.id.toString()) }}> {category.name} ))}
) } function UserAvatar({ user }: { user: User | null }) { const router = useRouter() const logout = async () => { await fetch('/api/auth/logout', { method: 'POST', }) router.refresh() } const login = () => { router.push('/login') } return ( } />

Signed in as

{user ? user.email : 'Guest'}

{user ? ( logout()}> Log Out ) : ( login()}> Login )}
) }