type Props = { eyebrow: string; title: string; rows?: number }; /** * Lightweight skeleton that mimics the AccountsTable / UsersTable shell. * Rendered by app/loading.tsx and app/users/loading.tsx — Next.js shows * this immediately on tab navigation, then streams in the real Server * Component once its data fetch resolves. Without it, the previous * route's UI freezes until the fetch finishes (the "tab switch is * laggy" symptom). * * The pulse animation comes from Tailwind's animate-pulse on each * placeholder bar; no JS, no layout shift when the real content swaps in. */ export default function TableSkeleton({ eyebrow, title, rows = 8 }: Props) { return (
{eyebrow}