70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
import { Card, CardContent, CardHeader } from "@/components/ui/card"
|
|
import { Skeleton } from "@/components/ui/skeleton"
|
|
|
|
export default function SettingsLoading() {
|
|
return (
|
|
<div className="space-y-6">
|
|
{/* Header */}
|
|
<div className="flex flex-col sm:flex-row sm:items-center sm:justify-between">
|
|
<div>
|
|
<Skeleton className="h-8 w-32 mb-2" />
|
|
<Skeleton className="h-4 w-64" />
|
|
</div>
|
|
<Skeleton className="h-10 w-24" />
|
|
</div>
|
|
|
|
<div className="flex flex-col lg:flex-row gap-6">
|
|
{/* Sidebar */}
|
|
<div className="lg:w-64">
|
|
<Card>
|
|
<CardContent className="p-0">
|
|
<nav className="space-y-1">
|
|
{[...Array(7)].map((_, i) => (
|
|
<div key={i} className="flex items-center px-4 py-3">
|
|
<Skeleton className="h-5 w-5 mr-3" />
|
|
<Skeleton className="h-4 w-24" />
|
|
</div>
|
|
))}
|
|
</nav>
|
|
</CardContent>
|
|
</Card>
|
|
</div>
|
|
|
|
{/* Main Content */}
|
|
<div className="flex-1">
|
|
<Card>
|
|
<CardHeader>
|
|
<Skeleton className="h-6 w-48" />
|
|
</CardHeader>
|
|
<CardContent className="space-y-6">
|
|
{/* Profile Section */}
|
|
<div className="flex items-center space-x-4">
|
|
<Skeleton className="h-20 w-20 rounded-full" />
|
|
<div>
|
|
<Skeleton className="h-8 w-32 mb-2" />
|
|
<Skeleton className="h-4 w-48" />
|
|
</div>
|
|
</div>
|
|
|
|
{/* Form Fields */}
|
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
{[...Array(6)].map((_, i) => (
|
|
<div key={i} className="space-y-2">
|
|
<Skeleton className="h-4 w-20" />
|
|
<Skeleton className="h-10 w-full" />
|
|
</div>
|
|
))}
|
|
</div>
|
|
|
|
<div className="space-y-2">
|
|
<Skeleton className="h-4 w-24" />
|
|
<Skeleton className="h-20 w-full" />
|
|
</div>
|
|
</CardContent>
|
|
</Card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|