"use client" import { Logo } from "@ui/assets/Logo" import { Avatar, AvatarFallback, AvatarImage } from "@ui/components/avatar" import { useAuth } from "@lib/auth-context" import { LayoutGridIcon, Plus, SearchIcon, LogOut, Settings, Home, Code2, ExternalLink, HelpCircle, MenuIcon, MessageCircleIcon, RotateCcw, } from "lucide-react" import { Button } from "@ui/components/button" import { cn } from "@lib/utils" import { dmSansClassName } from "@/lib/fonts" import { Tabs, TabsList, TabsTrigger } from "@ui/components/tabs" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@ui/components/dropdown-menu" import { authClient } from "@lib/auth" import { useProjectMutations } from "@/hooks/use-project-mutations" import { useProject } from "@/stores" import { useRouter } from "next/navigation" import Link from "next/link" import { SpaceSelector } from "./space-selector" import { useIsMobile } from "@hooks/use-mobile" import { useOrgOnboarding } from "@hooks/use-org-onboarding" import { useState } from "react" import { FeedbackModal } from "./feedback-modal" interface HeaderProps { onAddMemory?: () => void onOpenMCP?: () => void onOpenChat?: () => void onOpenSearch?: () => void } export function Header({ onAddMemory, onOpenMCP, onOpenChat, onOpenSearch, }: HeaderProps) { const { user } = useAuth() const { selectedProject } = useProject() const { switchProject } = useProjectMutations() const router = useRouter() const isMobile = useIsMobile() const { resetOrgOnboarded } = useOrgOnboarding() const [isFeedbackOpen, setIsFeedbackOpen] = useState(false) const handleTryOnboarding = () => { resetOrgOnboarded() router.push("/new/onboarding?step=input&flow=welcome") } const handleFeedback = () => { setIsFeedbackOpen(true) } const displayName = user?.displayUsername || localStorage.getItem("username") || localStorage.getItem("userName") || "" const userName = displayName ? `${displayName.split(" ")[0]}'s` : "My" return (
Home Developer console supermemory.ai
{!isMobile && ( )}
{!isMobile && ( Grid Graph )}
{isMobile ? ( <> Add memory MCP Chat with Nova Feedback router.push("/new/settings")} className="px-3 py-2.5 rounded-md hover:bg-[#293952]/40 cursor-pointer text-white text-sm font-medium gap-2" > Settings ) : ( <> )} {user && (

{user?.name}

{user?.email}

router.push("/new/settings")} className="px-3 py-2.5 rounded-md hover:bg-[#293952]/40 cursor-pointer text-white text-sm font-medium gap-2" > Settings Restart Onboarding Help & Support Discord Discord { authClient.signOut() router.push("/login/new") }} className="px-3 py-2.5 rounded-md hover:bg-[#293952]/40 cursor-pointer text-white text-sm font-medium gap-2" > Logout
)}
setIsFeedbackOpen(false)} />
) }