import React, { useEffect, useState } from 'react'; import { Box, Typography, Grid, Card, CardContent, CardMedia, Button, CircularProgress, Pagination } from '@mui/material'; import { juniorsApi } from '../../api/client'; import { Junior, PaginatedResponse } from '../../types/junior'; import { useNavigate } from 'react-router-dom'; export const JuniorsList = () => { const [loading, setLoading] = useState(true); const [error, setError] = useState(''); const [juniors, setJuniors] = useState([]); const [page, setPage] = useState(1); const [totalPages, setTotalPages] = useState(1); const navigate = useNavigate(); const fetchJuniors = async (pageNum: number) => { try { setLoading(true); const response = await juniorsApi.getJuniors(pageNum); const data = response.data as PaginatedResponse; setJuniors(data.data); setTotalPages(data.meta.pageCount); } catch (err) { setError(err instanceof Error ? err.message : 'Failed to load juniors'); } finally { setLoading(false); } }; useEffect(() => { fetchJuniors(page); }, [page]); const handlePageChange = (event: React.ChangeEvent, value: number) => { setPage(value); }; if (loading) { return ( ); } if (error) { return ( {error} ); } return ( Juniors {juniors.map((junior) => ( {junior.fullName} {junior.relationship} ))} {totalPages > 1 && ( )} ); };