import React from "react"; import { ProviderInfo, CalendarData } from "../types/heatmap"; interface OrganizationButtonProps { provider: ProviderInfo; calendarData: CalendarData; rank: number; } // Compact vertical-leaderboard row: rank badge · avatar · name · repo count. const OrganizationButton: React.FC = ({ provider, calendarData, rank, }) => { const providerName = provider.fullName || provider.authors[0]; const calendarKey = provider.authors[0]; const providerData = calendarData[calendarKey] || []; const totalCount = providerData.reduce((sum, day) => sum + day.count, 0); const handleClick = () => { const element = document.getElementById(`provider-${calendarKey}`); if (element) { element.scrollIntoView({ behavior: "smooth" }); } }; const medal = rank === 1 ? "👑" : rank === 2 ? "🥈" : rank === 3 ? "🥉" : null; const badgeClasses = rank === 1 ? "bg-gradient-to-br from-yellow-400 to-yellow-600 text-yellow-900" : rank === 2 ? "bg-gradient-to-br from-gray-300 to-gray-500 text-gray-900" : rank === 3 ? "bg-gradient-to-br from-amber-600 to-amber-800 text-amber-100" : "bg-muted text-muted-foreground"; return (
{medal || `#${rank}`}
{provider.avatarUrl ? ( {`${providerName} ) : (
{providerName.charAt(0).toUpperCase()}
)} {provider.flag ? {provider.flag} : null} {providerName} {totalCount.toLocaleString()}{" "} repos
); }; export default OrganizationButton;