Replace the current spinner-based loading state (client/web/src/components/LoadingSpinner.tsx, used as the route-level fallback via PageLoader.tsx and in several page/dialog loading states) with a nicer skeleton loader.
A Skeleton primitive already exists in the UI kit (client/web/src/components/ui/skeleton.tsx) and is already used in some places (e.g. AllApplicantsPage.tsx, ScansPage.tsx, SponsorsPage.tsx, GradingPageLayout.tsx). This task is to:
- Build skeleton layouts that approximate each page/section's real content shape
- Swap out
LoadingSpinner/PageLoader spinner usages for the new skeletons where it makes sense
- Remove the old spinner loader once it's no longer used
Replace the current spinner-based loading state (
client/web/src/components/LoadingSpinner.tsx, used as the route-level fallback viaPageLoader.tsxand in several page/dialog loading states) with a nicer skeleton loader.A
Skeletonprimitive already exists in the UI kit (client/web/src/components/ui/skeleton.tsx) and is already used in some places (e.g.AllApplicantsPage.tsx,ScansPage.tsx,SponsorsPage.tsx,GradingPageLayout.tsx). This task is to:LoadingSpinner/PageLoaderspinner usages for the new skeletons where it makes sense