Actualizar frontend/src/App.jsx

This commit is contained in:
2026-09-04 16:01:12 -05:00
parent d94c4c6a0d
commit 8e83b662aa

View File

@@ -4,6 +4,8 @@ import Leads from "./pages/Leads";
import OtrosGeneral from "./pages/OtrosGeneral"; import OtrosGeneral from "./pages/OtrosGeneral";
import Vendedores from "./pages/Vendedores"; import Vendedores from "./pages/Vendedores";
import Roas from "./pages/Roas"; import Roas from "./pages/Roas";
import Programa from "./pages/Programa";
import Alertas from "./pages/Alertas";
import CampanitaAlertas from "./components/CampanitaAlertas"; import CampanitaAlertas from "./components/CampanitaAlertas";
import ConfigModal from "./components/ConfigModal"; import ConfigModal from "./components/ConfigModal";
import ErrorBoundary from "./components/ErrorBoundary"; import ErrorBoundary from "./components/ErrorBoundary";
@@ -11,20 +13,27 @@ import ErrorBoundary from "./components/ErrorBoundary";
export default function App() { export default function App() {
const [pagina, setPagina] = useState("leads"); const [pagina, setPagina] = useState("leads");
const [config, setConfig] = useState(false); const [config, setConfig] = useState(false);
// Filtro inicial para el apartado PROGRAMA cuando se llega por un enlace desde Leads.
const [progInicial, setProgInicial] = useState(null); // { ano, mes, programa }
// Ir al apartado PROGRAMA ya filtrado por un curso (desde la tabla de Leads).
const irAPrograma = (filtro) => { setProgInicial(filtro); setPagina("programa"); };
function render() { function render() {
switch (pagina) { switch (pagina) {
case "leads": return <Leads />; case "leads": return <Leads irAPrograma={irAPrograma} />;
case "otros": return <OtrosGeneral />; case "otros": return <OtrosGeneral />;
case "vendedores": return <Vendedores />; case "vendedores": return <Vendedores />;
case "roas": return <Roas />; case "roas": return <Roas />;
case "programa": return <Programa inicial={progInicial} onConsumirInicial={() => setProgInicial(null)} />;
case "alertas": return <Alertas />;
default: return null; default: return null;
} }
} }
return ( return (
<div className="app"> <div className="app">
<Sidebar active={pagina} onChange={setPagina} onConfig={() => setConfig(true)} /> <Sidebar active={pagina} onChange={(p) => { setPagina(p); }} onConfig={() => setConfig(true)} />
<main className="main"> <main className="main">
<ErrorBoundary key={pagina}>{render()}</ErrorBoundary> <ErrorBoundary key={pagina}>{render()}</ErrorBoundary>
</main> </main>