// src/routes/AppRoutes.tsx import React, { type JSX } from 'react'; import { BrowserRouter, Routes, Route, Navigate, Outlet } from 'react-router-dom'; import LoginPage from '../pages/LoginPage'; import HomePage from '../pages/HomePage'; import { useAuth } from '../contexts/AuthContext'; import MainLayout from '../layouts/MainLayout'; import { Typography } from '@mui/material'; // Distribución import DistribucionIndexPage from '../pages/Distribucion/DistribucionIndexPage'; import ESCanillasPage from '../pages/Distribucion/ESCanillasPage'; import ControlDevolucionesPage from '../pages/Distribucion/ControlDevolucionesPage'; import ESDistribuidoresPage from '../pages/Distribucion/ESDistribuidoresPage'; import SalidasOtrosDestinosPage from '../pages/Distribucion/SalidasOtrosDestinosPage'; import CanillasPage from '../pages/Distribucion/CanillasPage'; import DistribuidoresPage from '../pages/Distribucion/DistribuidoresPage'; import PublicacionesPage from '../pages/Distribucion/PublicacionesPage'; import OtrosDestinosPage from '../pages/Distribucion/OtrosDestinosPage'; import ZonasPage from '../pages/Distribucion/ZonasPage'; import EmpresasPage from '../pages/Distribucion/EmpresasPage'; // Contables import ContablesIndexPage from '../pages/Contables/ContablesIndexPage'; import GestionarTiposPagoPage from '../pages/Contables/GestionarTiposPagoPage'; // Asumiendo que lo moviste aquí // --- ProtectedRoute y PublicRoute SIN CAMBIOS --- const ProtectedRoute: React.FC<{ children: JSX.Element }> = ({ children }) => { const { isAuthenticated, isLoading } = useAuth(); // console.log("ProtectedRoute Check:", { path: window.location.pathname, isAuthenticated, isLoading }); if (isLoading) return null; if (!isAuthenticated) { // console.log("ProtectedRoute: Not authenticated, redirecting to /login"); return ; } // console.log("ProtectedRoute: Authenticated, rendering children"); return children; }; const PublicRoute: React.FC<{ children: JSX.Element }> = ({ children }) => { const { isAuthenticated, isLoading } = useAuth(); // console.log("PublicRoute Check:", { path: window.location.pathname, isAuthenticated, isLoading }); if (isLoading) return null; if (isAuthenticated) { // console.log("PublicRoute: Authenticated, redirecting to /"); return ; } // console.log("PublicRoute: Not authenticated, rendering children"); return children; }; // --- Fin Protected/Public --- const MainLayoutWrapper: React.FC = () => ( ); // Placeholder simple const PlaceholderPage: React.FC<{ moduleName: string }> = ({ moduleName }) => ( Página Principal del Módulo: {moduleName} ); const AppRoutes = () => { return ( {/* Un solo de nivel superior */} } /> {/* Rutas Protegidas que usan el MainLayout */} } > {/* Rutas hijas que se renderizarán en el Outlet de MainLayoutWrapper */} } /> {/* Para la ruta exacta "/" */} {/* Módulo de Distribución (anidado) */} }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Módulo Contable (anidado) */} }> } /> } /> {/* Futuras sub-rutas de contables aquí */} {/* Otros Módulos Principales (estos son "finales", no tienen más hijos) */} } /> } /> } /> {/* } /> */} {/* Ruta catch-all DENTRO del layout protegido */} } /> {/* Cierre de la ruta padre "/" */} {/* Podrías tener un catch-all global aquí si una ruta no coincide EN ABSOLUTO, pero el path="*" dentro de la ruta "/" ya debería manejar la mayoría de los casos después de un login exitoso. Si un usuario no autenticado intenta una ruta inválida, ProtectedRoute lo manda a /login. */} {/* } /> */} ); }; export default AppRoutes;