import React from 'react'; import { Box, Group, Stack } from '@mantine/core'; interface SkeletonLoaderProps { type: 'pageGrid' | 'fileGrid' | 'controls' | 'viewer'; count?: number; animated?: boolean; } const SkeletonLoader: React.FC = ({ type, count = 8, animated = true }) => { const animationStyle = animated ? { animation: 'pulse 2s infinite' } : {}; const renderPageGridSkeleton = () => (
{Array.from({ length: count }).map((_, i) => ( ))}
); const renderFileGridSkeleton = () => (
{Array.from({ length: count }).map((_, i) => ( ))}
); const renderControlsSkeleton = () => ( ); const renderViewerSkeleton = () => ( {/* Toolbar skeleton */} {/* Main content skeleton */} ); switch (type) { case 'pageGrid': return renderPageGridSkeleton(); case 'fileGrid': return renderFileGridSkeleton(); case 'controls': return renderControlsSkeleton(); case 'viewer': return renderViewerSkeleton(); default: return null; } }; export default SkeletonLoader;