import { Card, CardContent, CardHeader, CardTitle } from "../ui/card"; import { Badge } from "../ui/badge"; import { LoaderCircle } from "lucide-react"; import { getIconForAuthorise } from "../icon-utils"; interface McpSourcesStatsProps { sources: Array<{ name: string; slug: string; count: number }>; activeSources?: string[]; isLoading?: boolean; } export function McpSourcesStats({ sources, activeSources = [], isLoading, }: McpSourcesStatsProps) { if (isLoading) { return ( Top Sources
); } const totalSessions = sources.reduce((sum, source) => sum + source.count, 0); return (
Top Sources {sources.length === 0 ? (

No sources found

) : (
{sources.slice(0, 5).map((source) => { const percentage = totalSessions > 0 ? (source.count / totalSessions) * 100 : 0; return (
{getIconForAuthorise(source.name.toLowerCase(), 16)} {source.name} {source.count}
{percentage.toFixed(0)}%
); })}
)} Active {activeSources.length === 0 ? (

No active sources

) : (
{activeSources.map((source) => ( {getIconForAuthorise(source.toLowerCase(), 12)} {source} ))}
)}
); }