import React, { useState } from "react";
import "../../../App.css";
import CardProfesor from "./CardProfesor";
import Guard from "../../../guards/route.guard";
import {
useProfesores,
useProfesoresActives,
} from "../../../services/teacher.services";
import { PrivateRoutes } from "../../../models/routes";
const Mapeo = ({ filters, edificios }) => {
const [currentPage, setCurrentPage] = useState(1);
const permissions = Guard();
const { profesores: profesoresData, totalPages: totalDataPages, loading: loadingData, error: errorData } = useProfesores(currentPage, filters);
const { profesores: profesoresActivesData, totalPages: totalActivePages, loading: loadingActives, error: errorActives } = useProfesoresActives(currentPage, filters);
if (loadingData || loadingActives) {
return
Cargando datos del los profesores...
;
}
if (errorData || errorActives) {
return Error al cargar los datos de los profesores: {errorData || errorActives}
;
}
if((totalDataPages || totalActivePages) === 0){
return Profesor no registrado en la base de datos
;
}
const { profesores, totalPages } = permissions
? { profesores: profesoresData, totalPages: totalDataPages }
: { profesores: profesoresActivesData, totalPages: totalActivePages };
const handleNextPage = () => {
if (currentPage < totalPages) {
setCurrentPage((prevPage) => prevPage + 1);
}
};
const handlePrevPage = () => {
if (currentPage > 1) {
setCurrentPage((prevPage) => prevPage - 1);
}
};
const renderPageNumbers = () => {
const pageNumbers = [];
const maxPagesToShow = 5;
let startPage = Math.max(1, currentPage - Math.floor(maxPagesToShow / 2));
let endPage = Math.min(totalPages, startPage + maxPagesToShow - 1);
if (endPage - startPage < maxPagesToShow - 1) {
startPage = Math.max(1, endPage - maxPagesToShow + 1);
}
for (let i = startPage; i <= endPage; i++) {
pageNumbers.push(
);
}
return pageNumbers;
};
const handleCrear = () => {
window.location.href = PrivateRoutes.CREARPROFESOR;
};
const handleRegresar = () => {
window.location.href = PrivateRoutes.INTERFACE;
};
return (
{permissions ? (
) : null}
{profesores.map((profesor) => {
const edificio = edificios.find(
(e) => e.id_edificio === profesor.id_edificio
);
const edificioNombre = edificio ? edificio.edificio : "Desconocido";
return (
);
})}
);
};
export default Mapeo;