Skip to content

Commit af6c7c6

Browse files
authored
Merge pull request #507 from satyam-mishra-pce/hypercerts-loading-page
feat: create a loading state while the hypercert data loads
2 parents c67223e + 136c399 commit af6c7c6

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import React from "react";
2+
import { Skeleton } from "@/components/ui/skeleton";
3+
import {
4+
Accordion,
5+
AccordionContent,
6+
AccordionItem,
7+
AccordionTrigger,
8+
} from "@/components/ui/accordion";
9+
10+
const Loading = () => {
11+
return (
12+
<main className="flex flex-col p-8 md:px-24 md:pt-14 pb-24 space-y-4 flex-1">
13+
{/* Hypercert Details Loading State */}
14+
<div className="space-y-6">
15+
<div className="flex flex-col md:flex-row gap-6">
16+
{/* Image skeleton */}
17+
<Skeleton className="w-full md:w-[400px] h-[400px] rounded-lg" />
18+
19+
{/* Content skeleton */}
20+
<div className="flex-1 space-y-4">
21+
<Skeleton className="h-8 w-3/4" /> {/* Title */}
22+
<Skeleton className="h-4 w-1/4" /> {/* ID */}
23+
<Skeleton className="h-20 w-full" /> {/* Description */}
24+
{/* Work scope */}
25+
<div className="space-y-2">
26+
<Skeleton className="h-6 w-24" />
27+
<div className="flex gap-2">
28+
<Skeleton className="h-8 w-20" />
29+
<Skeleton className="h-8 w-20" />
30+
<Skeleton className="h-8 w-20" />
31+
</div>
32+
</div>
33+
</div>
34+
</div>
35+
</div>
36+
37+
{/* Accordion Sections Loading State */}
38+
<Accordion type="multiple" className="w-full">
39+
{/* Creator's Feed Section */}
40+
<AccordionItem value="creator-feed">
41+
<AccordionTrigger className="uppercase text-sm text-slate-500 font-medium tracking-wider">
42+
CREATOR&apos;S FEED
43+
</AccordionTrigger>
44+
<AccordionContent>
45+
<div className="space-y-4">
46+
<div className="flex justify-end">
47+
<Skeleton className="h-10 w-32" />
48+
</div>
49+
<div className="space-y-2">
50+
<Skeleton className="h-24 w-full" />
51+
<Skeleton className="h-24 w-full" />
52+
</div>
53+
</div>
54+
</AccordionContent>
55+
</AccordionItem>
56+
57+
{/* Evaluations Section */}
58+
<AccordionItem value="evaluations">
59+
<AccordionTrigger className="uppercase text-sm text-slate-500 font-medium tracking-wider">
60+
EVALUATIONS
61+
</AccordionTrigger>
62+
<AccordionContent>
63+
<div className="space-y-4">
64+
<div className="flex justify-end">
65+
<Skeleton className="h-10 w-32" />
66+
</div>
67+
<div className="space-y-2">
68+
<Skeleton className="h-24 w-full" />
69+
<Skeleton className="h-24 w-full" />
70+
</div>
71+
</div>
72+
</AccordionContent>
73+
</AccordionItem>
74+
75+
{/* Marketplace Section */}
76+
<AccordionItem value="marketplace-listings">
77+
<AccordionTrigger className="uppercase text-sm text-slate-500 font-medium tracking-wider">
78+
MARKETPLACE
79+
</AccordionTrigger>
80+
<AccordionContent>
81+
<div className="space-y-4">
82+
<div className="flex justify-end gap-2">
83+
<Skeleton className="h-10 w-24" />
84+
<Skeleton className="h-10 w-32" />
85+
</div>
86+
<div className="space-y-2">
87+
<Skeleton className="h-32 w-full" />
88+
</div>
89+
</div>
90+
</AccordionContent>
91+
</AccordionItem>
92+
</Accordion>
93+
</main>
94+
);
95+
};
96+
97+
export default Loading;

0 commit comments

Comments
 (0)