"use client"; /** * user-menu(topbar / top) * * 通过 useCurrentUser 查询 apollo-router → iam 子图的 me 数据。 * 展示用户头像 + 下拉菜单(昵称 / 邮箱 / 角色)。 * * 关联:portal-shell spec §5.6 统一 Hook、M8 验收 */ import { useState } from "react"; import { useCurrentUser } from "@/lib/api/topbar"; import { useAuth } from "@/providers/AuthProvider"; import type { PluginProps } from "@/lib/types"; export default function UserMenu(_props: PluginProps): React.ReactElement { const { user } = useAuth(); const [open, setOpen] = useState(false); const { data: me } = useCurrentUser(); const displayName = me?.name ?? user.name; const displayEmail = me?.email ?? user.email; const displayRole = me?.role ?? user.role; return (
{displayName}
{displayEmail}