import { Routes, Route, Navigate } from 'react-router-dom';
import { Suspense, lazy } from 'react';
import PageLoader from './components/common/PageLoader';
import ProtectedRoute from './components/auth/ProtectedRoute';
import RoleProtectedRoute from './components/auth/RoleProtectedRoute';
import SuperuserBlockedRoute from './components/auth/SuperuserBlockedRoute';
import RoleBasedRedirect from './components/auth/RoleBasedRedirect';
import { useAuth } from './contexts/AuthContext';
import { TenantProvider } from './contexts/TenantContext';
import { ThemeProvider } from './contexts/ThemeContext';
const Terms = lazy(() => import('./pages/Terms'));
const Privacy = lazy(() => import('./pages/Privacy'));
// Lazy-loaded components
const Login = lazy(() => import('./pages/auth/Login'));
const Register = lazy(() => import('./pages/auth/Register'));
const OAuthCallback = lazy(() => import('./pages/auth/OAuthCallback'));
const Dashboard = lazy(() => import('./pages/dashboard/Dashboard'));
const SingleEvaluation = lazy(() => import('./pages/evaluations/SingleEvaluation'));
const BulkEvaluation = lazy(() => import('./pages/evaluations/BulkEvaluation'));
const BulkEvaluationResults = lazy(() => import('./pages/evaluations/BulkEvaluationResults'));
const BulkEvaluationProgress = lazy(() => import('./pages/evaluations/BulkEvaluationProgress'));
const EvaluationResults = lazy(() => import('./pages/evaluations/EvaluationResults'));
const Progress = lazy(() => import('./pages/evaluations/Progress'));
const AdminLayout = lazy(() => import('./components/layouts/AdminLayout'));
const DashboardLayout = lazy(() => import('./components/layouts/DashboardLayout'));
const AdminDashboard = lazy(() => import('./pages/admin/AdminDashboard'));
const TenantUsers = lazy(() => import('./pages/tenant/TenantUsers'));
const TenantSettings = lazy(() => import('./pages/tenant/TenantSettings'));
const TenantLpalto = lazy(() => import('./pages/tenant/TenantLpalto'));
const TenantLpmedio = lazy(() => import('./pages/tenant/TenantLpmedio'));
// const SummariesPage = lazy(() => import('./pages/tenant/SummariesPage'));
const CompanyLookup = lazy(() => import('./pages/CompanyLookup'));
const NotFound = lazy(() => import('./pages/NotFound'));
const LandingPage = lazy(() => import('./pages/LandingPage'));
const SheriffDataLogsPage = lazy(() => import('./pages/evaluations/EvaluationsSummaryPage')); // Changed import name
const SheriffLogDetailPage = lazy(() => import('./pages/admin/SheriffLogDetailPage')); // Added import for detail page
const HowToUse = lazy(() => import('./pages/HowToUse'));
const Consultas = lazy(() => import('./pages/Consultas'));
const ConsultaDetailPage = lazy(() => import('./pages/ConsultaDetailPage'));
const AlertingPage = lazy(() => import('./pages/AlertingPage'));
const AlertingDetailPage = lazy(() => import('./pages/AlertingDetailPage'));
const FastCheckConsolidado = lazy(() => import('./pages/FastCheckConsolidado'));
const FastCheckEX = lazy(() => import('./pages/FastCheckEX'));
const EvaluationSettingsPage = lazy(() => import('./pages/admin/EvaluationSettingsPage'));
const MonitoringPage = lazy(() => import('./pages/MonitoringPage'));
const HistoricalConsultas = lazy(() => import('./pages/HistoricalConsultas'));
const AdminRoutes = lazy(() => import('./routes/AdminRoutes'));
const AuditOverviewDebug = lazy(() => import('./pages/debug/AuditOverviewDebug'));
function App() {
const { isAuthenticated, loading } = useAuth();
if (loading) {
return ;
}
return (
}>
{/* Public routes */}
: } />
: } />
: } />
} />
} />
} />
{/* Debug route (public) */}
} />
{/* All protected routes wrapped in DashboardLayout */}
}>
} />
} />
} />
} />
} />
} />
} />
} />
} />
} /> {/* This might be the old summary page? */}
} /> {/* Changed component */}
} />
} />
} />
} />
} />
} />
} />
} />
} />
{/* Tenant admin routes */}
}>
} />
} />
} />
} />
{/* } /> */}
{/* Superuser admin routes */}
} />
{/* Not found */}
} />
);
}
export default App;