// Next.js automatically shows this while the page Server Component fetches data. // No client JS — the skeleton is pure HTML + CSS animation. const SKELETON_ROWS = 8; const SKELETON_COLS = 7; export default function Loading() { return (
{/* Skeleton header */}
{/* Skeleton table — desktop */}
{Array.from({ length: SKELETON_COLS }).map((_, i) => ( ))} {/* Column headers */} {Array.from({ length: SKELETON_COLS }).map((_, i) => ( ))} {/* Skeleton rows */} {Array.from({ length: SKELETON_ROWS }).map((_, rowIdx) => ( {Array.from({ length: SKELETON_COLS }).map((_, colIdx) => ( ))} ))}
{(rowIdx + colIdx) % 3 === 0 && (
)}
); }