import { Video } from '../../types/api'; import { VideoCard } from '../VideoCard/VideoCard'; interface VideoGridProps { videos: Video[]; loading: boolean; error: string | null; onVideoClick: (videoId: string) => void; page: number; totalPages: number; onPageChange: (page: number) => void; } export function VideoGrid({ videos, loading, error, onVideoClick, page, totalPages, onPageChange }: VideoGridProps) { if (loading) { return (
{Array.from({ length: 12 }).map((_, i) => (
))}
); } if (error) { return (

Error: {error}

); } if (videos.length === 0) { return (

No videos found

Try adding some channels from the admin panel

); } return (
{videos.map(video => ( onVideoClick(video.id)} /> ))}
{totalPages > 1 && (
{Array.from({ length: Math.min(totalPages, 5) }, (_, i) => { let pageNum; if (totalPages <= 5) { pageNum = i + 1; } else if (page <= 3) { pageNum = i + 1; } else if (page >= totalPages - 2) { pageNum = totalPages - 4 + i; } else { pageNum = page - 2 + i; } return ( ); })}
)}
); }