File size: 1,039 Bytes
6ee3edd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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; |