import React, { useState } from 'react'; import { FaBook, FaSearch, FaChevronLeft, FaChevronRight } from 'react-icons/fa'; import '../styles/BookList.css'; /** * Componente para mostrar y buscar libros en el catálogo */ const BookList = ({ books, onBookSelect, isLoading }) => { const [searchTerm, setSearchTerm] = useState(''); const [currentPage, setCurrentPage] = useState(1); const [itemsPerPage, setItemsPerPage] = useState(10); // Filtrar libros según el término de búsqueda const filteredBooks = books.filter((book) => book.title.toLowerCase().includes(searchTerm.toLowerCase()) ); // Calcular paginación const totalPages = Math.ceil(filteredBooks.length / itemsPerPage); const startIndex = (currentPage - 1) * itemsPerPage; const endIndex = startIndex + itemsPerPage; const currentBooks = filteredBooks.slice(startIndex, endIndex); // Resetear a la primera página cuando cambia la búsqueda o items por página const handleSearchChange = (value) => { setSearchTerm(value); setCurrentPage(1); }; const handleItemsPerPageChange = (value) => { setItemsPerPage(Number(value)); setCurrentPage(1); }; const goToPage = (page) => { setCurrentPage(Math.max(1, Math.min(page, totalPages))); }; if (isLoading) { return (

Cargando catálogo desde IPFS...

); } return (
{filteredBooks.length} {filteredBooks.length === 1 ? 'libro encontrado' : 'libros encontrados'}
por página
{totalPages > 1 && ( )}
); }; export default BookList;