import { useState, useEffect } from "react"; import { Button } from "@/components/ui/button"; import { Compass, Plus, LogIn, LogOut, Menu, X, Server } from "lucide-react"; export function Header({ user }: { user?: any }) { const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const [currentPath, setCurrentPath] = useState(""); useEffect(() => { if (typeof window !== "undefined") { setCurrentPath(window.location.pathname); } }, []); const handleLogout = async () => { try { await fetch("/api/auth/logout", { method: "POST" }); window.location.href = "/"; } catch (e) { console.error("Logout failed:", e); } }; const navLinks = [ { href: "/explore", label: "Explore", icon: Compass }, { href: "/instances", label: "Instances", icon: Server }, ]; return (
OpenCodeHub
OpenCodeHub Community Federated Hub
{user ? (
@{user.username}
) : ( )}
{mobileMenuOpen && (
{navLinks.map(({ href, label, icon: Icon }) => ( {label} ))} Submit URL
)}
); }