diff --git a/frontend/src/pages/Roas.jsx b/frontend/src/pages/Roas.jsx
index 46671f3..f45aa83 100644
--- a/frontend/src/pages/Roas.jsx
+++ b/frontend/src/pages/Roas.jsx
@@ -12,6 +12,7 @@ export default function Roas() {
const [filtros, setFiltros] = useState({ anos: [2026] });
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
+ const [recargando, setRecargando] = useState(false);
const [error, setError] = useState(null);
const [expand, setExpand] = useState({}); // sede -> abierto/cerrado
const [expandP, setExpandP] = useState({}); // "sede|prog" -> abierto/cerrado
@@ -30,11 +31,12 @@ export default function Roas() {
useEffect(() => {
let activo = true;
- if (!data) setLoading(true);
+ if (!data) setLoading(true); else setRecargando(true);
setError(null);
api.roas(ano, mes, "TODOS")
- .then((res) => { if (activo) { setData(res); setLoading(false); } })
- .catch((e) => { if (activo) { setError(e.message); setLoading(false); } });
+ .then((res) => { if (activo) { setData(res); } })
+ .catch((e) => { if (activo) setError(e.message); })
+ .finally(() => { if (activo) { setLoading(false); setRecargando(false); } });
return () => { activo = false; };
}, [ano, mes, reload]);
@@ -57,7 +59,9 @@ export default function Roas() {
{loading ?
| Sede | Importe Gastado | Resultados | +L. Recibidos del Mes | +L. Procesados del Mes | @@ -87,6 +93,8 @@ export default function Roas() {{soles(f.importe)} | {num(f.resultados)} | +{num(f.rec || 0)} | +{num(f.proc || 0)} | {abierto && subs.map((p) => { const claveP = f.sede + "|" + p.programa; @@ -107,6 +115,8 @@ export default function Roas() {{soles(p.importe)} | {num(p.resultados)} | +{num(p.rec || 0)} | +{num(p.proc || 0)} | {abiertoP && conjs.map((c) => (
|---|---|---|---|
| {soles(c.importe)} | {num(c.resultados)} | +{num(c.rec || 0)} | +{num(c.proc || 0)} | Total | {soles(data.total.importe)} | {num(data.total.resultados)} | +{num(data.total.rec || 0)} | +{num(data.total.proc || 0)} | )}