import { KPISkeleton, TableSkeleton, FormSkeleton, OrganizationSkeleton, LoginSkeleton, EventDetailSkeleton, EventCardsSkeleton } from './skeleton'; import { Card, CardHeader, CardBody } from './ui/Card'; /** * Showcase component demonstrating all the new skeleton components * This replaces generic spinners with contextually appropriate loading states */ export function SkeletonShowcase() { return (

Regional Skeleton Components

Context-aware loading states that provide better user experience than generic spinners. Each skeleton matches the structure of the content it represents.

{/* KPI Skeleton */}

KPI Dashboard Skeleton

For dashboard statistics and metric cards

{/* Event Cards Skeleton */}

Event Cards Skeleton

For event listing grids and card layouts

{/* Table Skeleton */}

Table Skeleton

For data tables with customizable columns and features

{/* Form Skeleton */}

Form Skeleton

For form layouts with various input types

{/* Full Page Skeletons */}
{/* Organization Skeleton Preview */}

Organization Loading

Full-screen loading for org initialization (scaled down)

{/* Login Skeleton Preview */}

Login Loading

Authentication state loading (scaled down)

{/* Event Detail Skeleton */}

Event Detail Skeleton

Complex page layout with hero, stats, and content areas

Implementation Complete ✅

✅ Replaced LoadingSpinner in App.tsx with OrganizationSkeleton

✅ Replaced LoginPage loading with LoginSkeleton

✅ Replaced EventDetailPage loading with EventDetailSkeleton

✅ EventsIndexPage already uses EventCardsSkeleton

✅ Button loading spinner kept (appropriate for size constraint)

✅ All new skeletons follow glassmorphism design system

✅ Components use design tokens and responsive patterns

); }