Actualizar frontend/src/pages/Cobranza.jsx

This commit is contained in:
2026-07-10 14:37:34 -05:00
parent 4b5f0f8d77
commit 5a7b55e793

View File

@@ -4,6 +4,7 @@ import { api } from "../lib/api";
import { Loader, ErrorBox, Filters, Select, colorSemaforo } from "../components/UI"; import { Loader, ErrorBox, Filters, Select, colorSemaforo } from "../components/UI";
import Modal from "../components/Modal"; import Modal from "../components/Modal";
import { useColumnasAjustables } from "../lib/useColumnasAjustables"; import { useColumnasAjustables } from "../lib/useColumnasAjustables";
import { setVistaActual, onRefrescar } from "../lib/vistaActual";
const MESES = ["ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"]; const MESES = ["ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"];
const ANOS = [2024, 2025, 2026]; const ANOS = [2024, 2025, 2026];
@@ -68,16 +69,21 @@ export default function Cobranza() {
useEffect(() => { useEffect(() => {
let activo = true; let activo = true;
setLoading(true); setError(null); setVistaActual(`cobranza:${ano}|${mes}|${sectorista}|${agrupacion}`);
api.cobranza(ano, mes, sectorista, agrupacion) const cargar = () => {
.then((res) => { setLoading(true); setError(null);
if (!activo) return; api.cobranza(ano, mes, sectorista, agrupacion)
setFilas(res.filas || []); .then((res) => {
setSectoristas(res.sectoristas || ["TODOS"]); if (!activo) return;
setLoading(false); setFilas(res.filas || []);
}) setSectoristas(res.sectoristas || ["TODOS"]);
.catch((e) => { if (activo) { setError(e.message); setLoading(false); } }); setLoading(false);
return () => { activo = false; }; })
.catch((e) => { if (activo) { setError(e.message); setLoading(false); } });
};
cargar();
const off = onRefrescar(cargar);
return () => { activo = false; off(); };
}, [ano, mes, agrupacion, sectorista]); }, [ano, mes, agrupacion, sectorista]);
// Cargar TODOS los alumnos una sola vez (para exportar y buscar) — 1 consulta cacheada // Cargar TODOS los alumnos una sola vez (para exportar y buscar) — 1 consulta cacheada