"use client"; import Link from "next/link"; import { usePathname, useRouter } from "next/navigation"; import { BookOpen, Calendar, Package, ChefHat, User, Rss, FolderOpen, ShoppingCart, Shield, Search, Compass, Menu } from "lucide-react"; import { cn } from "@/lib/utils"; import { Button, buttonVariants } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Sheet, SheetClose, SheetContent, SheetHeader, SheetTitle, SheetTrigger, } from "@/components/ui/sheet"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { NotificationBell } from "@/components/social/notification-bell"; import { MessagesNavLink } from "@/components/social/messages-nav-link"; import { authClient } from "@/lib/auth/client"; import { useTranslations } from "next-intl"; const NAV_ITEMS = [ { href: "/recipes", key: "recipes", icon: BookOpen }, { href: "/explore", key: "explore", icon: Search }, { href: "/feed", key: "feed", icon: Rss }, { href: "/collections", key: "collections", icon: FolderOpen }, { href: "/meal-plan", key: "mealPlan", icon: Calendar }, { href: "/pantry", key: "pantry", icon: Package }, { href: "/shopping-lists", key: "shopping", icon: ShoppingCart }, ] as const; export function Nav() { const pathname = usePathname(); const router = useRouter(); const { data: session } = authClient.useSession(); const isAdmin = (session?.user as { role?: string } | undefined)?.role === "admin"; const t = useTranslations("nav"); return (
} > {t("menu")} Epicure Epicure
{t("settings")} {isAdmin && ( <> {t("admin")} )} { void authClient.signOut({ fetchOptions: { onSuccess: () => { router.push("/login"); router.refresh(); }, }, }); }} > {t("signOut")}
); }