import React from "react"; interface TableSkeletonProps { rows?: number; columns?: number; } export const TableSkeleton: React.FC = ({ rows = 5, columns = 8, }) => { return (
{/* Table Header Skeleton */}
{Array.from({ length: columns }).map((_, index) => (
))}
{/* Table Rows Skeleton */}
{Array.from({ length: rows }).map((_, rowIndex) => (
{Array.from({ length: columns }).map((_, colIndex) => (
))}
))}
); }; interface DeparturesTableSkeletonProps { visibleColumns: { trip: boolean; date: boolean; time: boolean; capacity: boolean; booked: boolean; available: boolean; revenue: boolean; travelers: boolean; bookings: boolean; status: boolean; source: boolean; }; } export const DeparturesTableSkeleton: React.FC< DeparturesTableSkeletonProps > = ({ visibleColumns }) => { const visibleColumnCount = Object.values(visibleColumns).filter(Boolean).length + 1; // +1 for actions column return (
{/* Table Header */}
{visibleColumns.trip && (
)} {visibleColumns.date && (
)} {visibleColumns.time && (
)} {visibleColumns.capacity && (
)} {visibleColumns.booked && (
)} {visibleColumns.available && (
)} {visibleColumns.revenue && (
)} {visibleColumns.travelers && (
)} {visibleColumns.bookings && (
)} {visibleColumns.status && (
)} {visibleColumns.source && (
)}
{" "} {/* Actions */}
{/* Table Rows */}
{Array.from({ length: 5 }).map((_, rowIndex) => (
{visibleColumns.trip && (
)} {visibleColumns.date && (
)} {visibleColumns.time && (
)} {visibleColumns.capacity && (
)} {visibleColumns.booked && (
)} {visibleColumns.available && (
)} {visibleColumns.revenue && (
)} {visibleColumns.travelers && (
)} {visibleColumns.bookings && (
)} {visibleColumns.status && (
)} {visibleColumns.source && (
)}
))}
); };