import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import { QueryClientProvider } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import { AuthProvider } from './contexts/AuthContext'; import { ThemeProvider } from './contexts/ThemeContext'; import { ToastProvider } from './contexts/ToastContext'; import { ErrorBoundary } from './components/common/ErrorBoundary'; import { LoadingSpinner } from './components/ui/LoadingSpinner'; import { queryClient } from './lib/queryClient'; import { useAuth } from './contexts/AuthContext'; import { Login } from './pages/Login'; import { Dashboard } from './pages/Dashboard'; import { Users } from './pages/Users'; import Products from './pages/Products'; import { Orders } from './pages/Orders'; import { Reports } from './pages/Reports'; import { Notifications } from './pages/Notifications'; import { Layout } from './components/layout/Layout'; // Roles Pages import RolesListPage from './pages/roles/roles-list/RolesListPage'; import RoleFormPage from './pages/roles/role-form/RoleFormPage'; import RoleDetailPage from './pages/roles/role-detail/RoleDetailPage'; import RolePermissionsPage from './pages/roles/role-permissions/RolePermissionsPage'; // Admin Users Pages import AdminUsersListPage from './pages/admin-users/admin-users-list/AdminUsersListPage'; import AdminUserFormPage from './pages/admin-users/admin-user-form/AdminUserFormPage'; // Permissions Pages import PermissionsListPage from './pages/permissions/permissions-list/PermissionsListPage'; import PermissionFormPage from './pages/permissions/permission-form/PermissionFormPage'; const ProtectedRoute = ({ children }: { children: any }) => { const { user, isLoading } = useAuth(); if (isLoading) { return (
); } return user ? children : ; }; const AppRoutes = () => { return ( } /> }> } /> } /> } /> } /> } /> } /> {/* Roles Routes */} } /> } /> } /> } /> } /> {/* Admin Users Routes */} } /> } /> } /> {/* Permissions Routes */} } /> } /> } /> ); }; const App = () => { return ( ); }; export default App;