76 lines
3.4 KiB
TypeScript
76 lines
3.4 KiB
TypeScript
export default function FoldersLoading() {
|
|
return (
|
|
<div className="space-y-6">
|
|
{/* Header Skeleton */}
|
|
<div className="flex flex-col sm:flex-row sm:items-center sm:justify-between">
|
|
<div>
|
|
<div className="h-8 w-32 bg-gray-200 rounded animate-pulse mb-2" />
|
|
<div className="h-4 w-56 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
<div className="flex items-center space-x-3 mt-4 sm:mt-0">
|
|
<div className="h-9 w-24 bg-gray-200 rounded animate-pulse" />
|
|
<div className="h-9 w-36 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
</div>
|
|
|
|
{/* Breadcrumb Skeleton */}
|
|
<div className="flex items-center space-x-2">
|
|
<div className="h-4 w-16 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
|
|
{/* Stats Cards Skeleton */}
|
|
<div className="grid grid-cols-1 md:grid-cols-4 gap-4">
|
|
{[...Array(4)].map((_, i) => (
|
|
<div key={i} className="bg-white border rounded-lg p-4">
|
|
<div className="flex items-center justify-between">
|
|
<div>
|
|
<div className="h-4 w-16 bg-gray-200 rounded animate-pulse mb-2" />
|
|
<div className="h-8 w-8 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
<div className="h-8 w-8 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
</div>
|
|
))}
|
|
</div>
|
|
|
|
{/* Search and Filters Skeleton */}
|
|
<div className="bg-white border rounded-lg p-4">
|
|
<div className="flex flex-col lg:flex-row lg:items-center lg:justify-between space-y-4 lg:space-y-0">
|
|
<div className="flex flex-col sm:flex-row sm:items-center space-y-3 sm:space-y-0 sm:space-x-4">
|
|
<div className="h-10 w-80 bg-gray-200 rounded animate-pulse" />
|
|
<div className="h-10 w-20 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
<div className="flex items-center space-x-3">
|
|
<div className="h-10 w-32 bg-gray-200 rounded animate-pulse" />
|
|
<div className="h-10 w-20 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{/* Folders Grid Skeleton */}
|
|
<div className="bg-white border rounded-lg p-6">
|
|
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6">
|
|
{[...Array(8)].map((_, i) => (
|
|
<div key={i} className="border rounded-lg p-6">
|
|
<div className="flex flex-col items-center space-y-4">
|
|
<div className="h-16 w-16 bg-gray-200 rounded-xl animate-pulse" />
|
|
<div className="text-center space-y-2 w-full">
|
|
<div className="h-6 w-32 bg-gray-200 rounded animate-pulse mx-auto" />
|
|
<div className="h-4 w-full bg-gray-200 rounded animate-pulse" />
|
|
<div className="h-4 w-3/4 bg-gray-200 rounded animate-pulse mx-auto" />
|
|
<div className="flex items-center justify-center space-x-4">
|
|
<div className="h-4 w-8 bg-gray-200 rounded animate-pulse" />
|
|
<div className="h-4 w-8 bg-gray-200 rounded animate-pulse" />
|
|
<div className="h-4 w-8 bg-gray-200 rounded animate-pulse" />
|
|
</div>
|
|
<div className="h-6 w-16 bg-gray-200 rounded animate-pulse mx-auto" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|