- Add error.tsx and loading.tsx boundaries for admin, parent, student, teacher routes - Add dashboard-error-fallback and dashboard-loading-skeleton components - Add student/learning page, parent/leave routes, teacher textbook components - Update existing app routes across auth, dashboard, and API endpoints - Update proxy middleware and next-auth type declarations
33 lines
1014 B
TypeScript
33 lines
1014 B
TypeScript
import { Card, CardContent, CardHeader } from "@/shared/components/ui/card"
|
|
import { Skeleton } from "@/shared/components/ui/skeleton"
|
|
|
|
export default function Loading() {
|
|
return (
|
|
<div className="space-y-8">
|
|
<div className="flex flex-col justify-between gap-4 md:flex-row md:items-center">
|
|
<div className="space-y-2">
|
|
<Skeleton className="h-8 w-40" />
|
|
<Skeleton className="h-4 w-52" />
|
|
</div>
|
|
<Skeleton className="h-10 w-60" />
|
|
</div>
|
|
|
|
<div className="grid gap-4 lg:grid-cols-2">
|
|
{Array.from({ length: 6 }).map((_, i) => (
|
|
<Card key={i}>
|
|
<CardHeader className="pb-3">
|
|
<Skeleton className="h-4 w-16" />
|
|
</CardHeader>
|
|
<CardContent className="space-y-3">
|
|
{Array.from({ length: 3 }).map((__, j) => (
|
|
<Skeleton key={j} className="h-16 w-full" />
|
|
))}
|
|
</CardContent>
|
|
</Card>
|
|
))}
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|