"use client" import { BellIcon, KeyRoundIcon, LogOutIcon, UserIcon } from "lucide-react" import { useRouter } from "next/navigation" import { useState } from "react" import { ChangePasswordDialog } from "@/components/change-password-dialog" import { LocaleSwitcher } from "@/components/locale-switcher" import { PaletteToggle } from "@/components/palette-toggle" import { RealtimeConnectionStatus } from "@/components/realtime-connection-status" import { ThemeToggle } from "@/components/theme-toggle" import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { WorkspaceSwitcher } from "@/components/workspace-switcher" import { useAuth } from "@/components/auth-provider" import { useNotifications } from "@/components/notification-provider" import { useI18n } from "@/i18n/provider" import { useAgentConversationsStore } from "@/lib/stores/agent-conversations" export function WorkbenchHeader() { const realtimeStatus = useAgentConversationsStore((state) => state.realtimeStatus) return (
) } function WorkbenchUserMenu() { const t = useI18n() const router = useRouter() const { session, signOut } = useAuth() const { unreadCount } = useNotifications() const [changePasswordOpen, setChangePasswordOpen] = useState(false) const user = { name: session?.user.nickname || session?.user.username || t("common.notSignedIn"), email: session?.user.username || t("common.guest"), avatar: session?.user.avatar || "", } const fallback = user.name.slice(0, 1).toUpperCase() || "U" return ( <> } > {fallback || }
{fallback}
{user.name} {user.email}
{ router.push("/dashboard/notifications") }} className="gap-2" > {t("nav.notifications")} {unreadCount > 0 ? ( {unreadCount > 99 ? "99+" : unreadCount} ) : null} { setChangePasswordOpen(true) }} > {t("nav.changePassword")} { void signOut() }} > {t("nav.signOut")}
) }