import React, { useState, useEffect } from "react"; import { Table, TableBody, TableCell, TableContainer, TableRow, TableHead, IconButton, Paper, Box, CircularProgress, Button } from "@mui/material"; import DeleteIcon from "@mui/icons-material/Delete"; import { ImageType } from "../../Types/ImageType"; import ApiService from '../../services/ApiService'; const Images: React.FC = () => { const [images, setImages] = useState([]); const [totalImg, setTotalImg] = useState(0); const [imgPage, setImgPage] = useState(1); const [imgLimit] = useState(10); const [loading, setLoading] = useState(false); const fetchImages = async (page: number, limit: number) => { setLoading(true); const data = await ApiService.getImages(page, limit); setImages(data.images); setTotalImg(data.total); setLoading(false); }; useEffect(() => { fetchImages(imgPage, imgLimit); }, [imgPage]); const handleDelete = async (id: string) => { setLoading(true); const isDeleted = await ApiService.deleteImage(id); setLoading(false); if (isDeleted) { setImages(images.filter(image => image.id !== id)); } }; const handleNextPage = () => { if ((imgPage * imgLimit) < totalImg) { setImgPage(prev => prev + 1); } }; const handlePrevPage = () => { if (imgPage > 1) { setImgPage(prev => prev - 1); } }; return ( {loading ? ( ) : ( Nom Image ID {images.map((obj: ImageType) => ( {`Image {obj.file_name} {obj.id} handleDelete(obj.id)} color="error"> ))}
)}
); }; export default Images;