import { useState } from "react"; import { Link, NavLink } from "react-router"; import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger, } from "~/components/ui/sheet"; import { Button } from "~/components/ui/button"; import { SignedIn, SignedOut, SignInButton, UserButton } from "@clerk/react-router"; import { HelpCircle, MenuIcon, Settings } from "lucide-react"; const NAV_LINK_CLASS = "relative text-sm font-semibold uppercase tracking-wide text-muted-foreground px-3 py-2 transition-colors " + "after:content-[''] after:absolute after:bottom-0 after:left-3 after:right-3 after:h-[3px] " + "after:scale-x-0 hover:after:scale-x-100 after:transition-transform after:[background:var(--brackt-gradient)]"; function navLinkClass({ isActive }: { isActive: boolean }) { return `${NAV_LINK_CLASS}${isActive ? " !text-emerald-400" : ""}`; } function mobileNavLinkClass({ isActive }: { isActive: boolean }) { return `block px-4 py-2 text-lg font-medium rounded-md transition-colors${isActive ? " text-emerald-400" : " text-muted-foreground"}`; } interface NavbarProps { isAdmin: boolean; } export function Navbar({ isAdmin }: NavbarProps) { const [open, setOpen] = useState(false); return (
{/* Left: Logo + Nav links */}
Brackt
{/* Desktop Right: Support + Admin icons + Auth */}
{isAdmin && ( )}
{/* Mobile: icons + Auth + Hamburger */}
{isAdmin && ( )} Menu
); }