Spaces:
Running
Running
| import React from "react"; | |
| import { ProviderInfo, CalendarData } from "../types/heatmap"; | |
| import OrganizationCard from "./OrganizationCard"; | |
| import ProviderHeatmapSkeleton from "./ProviderHeatmapSkeleton"; | |
| interface HeatmapGridProps { | |
| sortedProviders: ProviderInfo[]; | |
| calendarData: CalendarData; | |
| isLoading: boolean; | |
| } | |
| const HeatmapGrid: React.FC<HeatmapGridProps> = ({ sortedProviders, calendarData, isLoading }) => { | |
| if (isLoading) { | |
| return ( | |
| <div className="flex flex-col gap-8 max-w-4xl mx-auto mb-16"> | |
| {Array.from({ length: 3 }).map((_, idx) => ( | |
| <ProviderHeatmapSkeleton key={idx} /> | |
| ))} | |
| </div> | |
| ); | |
| } | |
| return ( | |
| <div className="flex flex-col gap-8 max-w-4xl mx-auto mb-16"> | |
| {sortedProviders.map((provider, index) => ( | |
| <OrganizationCard | |
| key={provider.fullName || provider.authors[0]} | |
| provider={provider} | |
| calendarData={calendarData} | |
| rank={index + 1} | |
| /> | |
| ))} | |
| </div> | |
| ); | |
| }; | |
| export default HeatmapGrid; |