"use client"; import { usePathname, useRouter } from "next/navigation"; import { signOut } from "next-auth/react"; import { Activity, AppWindow, Calendar, CheckSquare, ChevronDown, FileText, LayoutGrid, LayoutTemplate, LogOut, Pencil, Plus, Presentation, ScrollText, Search, Settings, User, Users, Zap, } from "lucide-react"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; import { useWorkspaceStore } from "@/lib/stores/workspace-store"; import { cn } from "@/lib/utils"; export interface TopHeaderProps { onOpenSearch?: () => void; onQuickAction?: (type: string) => void; } export function TopHeader({ onOpenSearch, onQuickAction }: TopHeaderProps) { const pathname = usePathname(); const router = useRouter(); const workspace = useWorkspaceStore((s) => s.currentWorkspace); const workspaceName = workspace?.name ?? "Workspace"; const workspaceId = workspace?.id; const initials = workspaceName.trim().slice(0, 2).toUpperCase() || "WS"; return (
{/* Workspace dropdown */} {/* Header */}
{initials}

{workspaceName}

1 member

{/* Settings + People row */}
{/* Manage section */} Manage Apps workspaceId && router.push(`/${workspaceId}/settings/templates`) } > Templates workspaceId && router.push(`/${workspaceId}/settings/types`) } > Custom Fields Automations workspaceId && router.push(`/${workspaceId}/settings/audit`) } > Audit log workspaceId && router.push(`/${workspaceId}/settings/runs`) } > Agent runs {/* Create Workspace */}
{/* Center search bar */}
onOpenSearch?.()} onKeyDown={(e) => { if (e.key === "Enter" || e.key === " ") { e.preventDefault(); onOpenSearch?.(); } }} > Search... Cmd+/
{/* Right actions */}
Calendar onQuickAction?.("task")}> New Task onQuickAction?.("doc")}> New Doc onQuickAction?.("whiteboard")}> New Whiteboard onQuickAction?.("space")}> New Space {}}> Account workspaceId && router.push(`/${workspaceId}/settings`) } > Settings signOut({ callbackUrl: "/sign-in" })} > Sign Out
); }