diff --git a/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx b/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx index e880aa49f65..cd66a3ce528 100644 --- a/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx +++ b/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx @@ -1,14 +1,31 @@ +import React from "react"; import { useUISettings } from "@/app/(dashboard)/hooks/uiSettings/useUISettings"; import useAuthorized from "@/app/(dashboard)/hooks/useAuthorized"; import { Member } from "@/components/networking"; import { formatNumberWithCommas } from "@/utils/dataUtils"; import { isProxyAdminRole, isUserTeamAdminForSingleTeam } from "@/utils/roles"; -import { InfoCircleOutlined } from "@ant-design/icons"; -import { Space, Tooltip, Typography } from "antd"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; +import { Info } from "lucide-react"; import type { ColumnsType } from "antd/es/table"; import MemberTable from "@/components/common_components/MemberTable"; import { TeamData } from "./TeamInfo"; +const InfoTip: React.FC<{ children: React.ReactNode }> = ({ children }) => ( + + + + + + {children} + + +); + interface TeamMemberTabProps { teamData: TeamData; canEditTeam: boolean; @@ -92,47 +109,57 @@ export default function TeamMemberTab({ const extraColumns: ColumnsType = [ { title: ( - + Model Scope - - - - + + Models this member can access. Empty means they inherit all team + models. + + ), key: "model_scope", render: (_: unknown, record: Member) => { const models = getUserAllowedModels(record.user_id); if (!models) { - return (all team models); + return ( + (all team models) + ); } const displayed = models.slice(0, 2); const remaining = models.length - displayed.length; return ( - +
{displayed.map((m) => ( - {m} + + {m} + ))} {remaining > 0 && ( - - +{remaining} more - + + + + + +{remaining} more + + + {models.slice(2).join(", ")} + + )} - +
); }, }, { title: ( - + Team Member Spend (USD) - - - - + This is the amount spent by a user in the team. + ), key: "spend", render: (_: unknown, record: Member) => ( - ${formatNumberWithCommas(getUserSpend(record.user_id), 4)} + ${formatNumberWithCommas(getUserSpend(record.user_id), 4)} ), }, { @@ -141,24 +168,22 @@ export default function TeamMemberTab({ render: (_: unknown, record: Member) => { const budget = getUserBudget(record.user_id); return ( - + {budget ? `$${formatNumberWithCommas(Number(budget), 4)}` : "No Limit"} - + ); }, }, { title: ( - + Team Member Rate Limits - - - - + Rate limits for this member's usage within this team. + ), key: "rate_limits", render: (_: unknown, record: Member) => ( - {getUserRateLimits(record.user_id)} + {getUserRateLimits(record.user_id)} ), }, ];