diff --git a/apps/frontend/src/components/SkeletonBlock.tsx b/apps/frontend/src/components/SkeletonBlock.tsx new file mode 100644 index 0000000..0419c7f --- /dev/null +++ b/apps/frontend/src/components/SkeletonBlock.tsx @@ -0,0 +1,20 @@ +export function SkeletonBlock({ + width, + height, + borderRadius = 4, +}: { + width?: string | number; + height?: string | number; + borderRadius?: number; +}) { + return ( +
+ ); +} diff --git a/apps/frontend/src/components/TableSkeleton.tsx b/apps/frontend/src/components/TableSkeleton.tsx new file mode 100644 index 0000000..79748f7 --- /dev/null +++ b/apps/frontend/src/components/TableSkeleton.tsx @@ -0,0 +1,25 @@ +import { SkeletonBlock } from './SkeletonBlock'; + +const tdStyle = { + borderBottom: '1px solid #eeeeee', + padding: '10px 8px', + verticalAlign: 'top', +} satisfies React.CSSProperties; + +type Column = { width: string }; + +export function TableSkeleton({ rows = 5, columns }: { rows?: number; columns: Column[] }) { + return ( + + {Array.from({ length: rows }).map((_, i) => ( + + {columns.map((col, j) => ( + + + + ))} + + ))} + + ); +}