cfahlgren1 HF Staff commited on
Commit
a9df1b7
·
1 Parent(s): c4f22f9

make it more clear what is new and when

Browse files
src/components/OrganizationCard.tsx CHANGED
@@ -198,13 +198,6 @@ const OrganizationCard: React.FC<OrganizationCardProps> = ({
198
  )}
199
  </div>
200
 
201
- {/* Divider */}
202
- <div className="border-t border-border/20 mb-3"></div>
203
-
204
- {/* Releases Past Year */}
205
- <div className="text-xs text-muted-foreground italic">
206
- <span className="font-bold text-foreground">{totalCount}</span> new repos in the last year
207
- </div>
208
  </div>
209
  </div>
210
  </TooltipProvider>
 
198
  )}
199
  </div>
200
 
 
 
 
 
 
 
 
201
  </div>
202
  </div>
203
  </TooltipProvider>
src/components/ProviderHeatmapSkeleton.tsx ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import React from "react";
2
+
3
+ const ProviderHeatmapSkeleton: React.FC = () => {
4
+ return (
5
+ <div className="relative bg-gradient-to-br from-card to-card/95 rounded-2xl border border-border shadow-lg p-6 animate-pulse">
6
+ <div className="mb-4">
7
+ <div className="text-center bg-muted/20 rounded-lg p-3 border border-border/30">
8
+ {/* Avatar & name */}
9
+ <div className="flex items-center justify-center gap-2 mb-2">
10
+ <div className="h-8 w-8 rounded-md bg-muted shadow-sm" />
11
+ <div className="h-4 w-24 bg-muted rounded" />
12
+ </div>
13
+
14
+ {/* Compact stats placeholders */}
15
+ <div className="flex flex-wrap justify-center gap-2 text-xs mb-3">
16
+ {Array.from({ length: 4 }).map((_, i) => (
17
+ <div key={i} className="h-4 w-16 bg-muted rounded" />
18
+ ))}
19
+ </div>
20
+
21
+ {/* Divider */}
22
+ <div className="border-t border-border/20 mb-3"></div>
23
+
24
+ {/* Releases past year placeholder */}
25
+ <div className="h-3 w-32 mx-auto bg-muted rounded" />
26
+ </div>
27
+ </div>
28
+
29
+ {/* Heatmap grid skeleton */}
30
+ <div className="flex flex-col items-center bg-muted/30 rounded-xl p-3">
31
+ <div
32
+ className="grid gap-1 w-full"
33
+ style={{ gridTemplateColumns: "repeat(52, minmax(0, 1fr))" }}
34
+ >
35
+ {Array.from({ length: 52 * 7 }).map((_, i) => (
36
+ <div key={i} className="h-3 bg-muted rounded" />
37
+ ))}
38
+ </div>
39
+ </div>
40
+ </div>
41
+ );
42
+ };
43
+
44
+ export default ProviderHeatmapSkeleton;
src/pages/index.tsx CHANGED
@@ -11,6 +11,7 @@ import { fetchAllProvidersData, fetchAllAuthorsData } from "../utils/authors";
11
  import UserSearchDialog from "../components/UserSearchDialog";
12
  import ProviderSummary from "../components/ProviderSummary";
13
  import OrganizationCard from "../components/OrganizationCard";
 
14
 
15
  const PROVIDERS: ProviderInfo[] = [
16
  { color: "#ff7000", authors: ["mistralai"] },
@@ -86,6 +87,11 @@ const ProviderHeatmap = React.memo(({ provider, calendarData }: { provider: Prov
86
  showHeader={false}
87
  />
88
  </div>
 
 
 
 
 
89
  </div>
90
  );
91
  });
@@ -141,9 +147,10 @@ const OpenSourceHeatmap: React.FC<OpenSourceHeatmapProps> = ({
141
  </div>
142
 
143
  {isLoading ? (
144
- <div className="flex items-center justify-center py-20">
145
- <div className="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-500"></div>
146
- <p className="ml-4 text-muted-foreground">Loading heatmaps...</p>
 
147
  </div>
148
  ) : (
149
  <>
 
11
  import UserSearchDialog from "../components/UserSearchDialog";
12
  import ProviderSummary from "../components/ProviderSummary";
13
  import OrganizationCard from "../components/OrganizationCard";
14
+ import ProviderHeatmapSkeleton from "../components/ProviderHeatmapSkeleton";
15
 
16
  const PROVIDERS: ProviderInfo[] = [
17
  { color: "#ff7000", authors: ["mistralai"] },
 
87
  showHeader={false}
88
  />
89
  </div>
90
+
91
+ {/* Releases Past Year placed under the heatmap */}
92
+ <div className="mt-3 text-xs text-muted-foreground italic text-center">
93
+ <span className="font-bold text-foreground">{totalCount}</span> new repos in the last year
94
+ </div>
95
  </div>
96
  );
97
  });
 
147
  </div>
148
 
149
  {isLoading ? (
150
+ <div className="flex flex-col gap-8 max-w-4xl mx-auto mb-16">
151
+ {Array.from({ length: 3 }).map((_, idx) => (
152
+ <ProviderHeatmapSkeleton key={idx} />
153
+ ))}
154
  </div>
155
  ) : (
156
  <>