"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")}
>
)
}