import React from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { Layout } from '@/components/layout/Layout';
import { Dashboard } from '@/pages/Dashboard';
import { TenantList } from '@/pages/Tenants/TenantList';
import { UserList } from '@/pages/Users/UserList';
import { RoleEditor } from '@/pages/Roles/RoleEditor';
import { BillingPage } from '@/pages/Billing/BillingPage';
import { AuditLogPage } from '@/pages/AuditLogs/AuditLogPage';
import { ReportBuilder } from '@/pages/Reports/ReportBuilder';
import { PluginManager } from '@/pages/Plugins/PluginManager';
import { useAuth } from '@/hooks/useAuth';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 5 * 60 * 1000, // 5 minutes
retry: 1,
},
},
});
function ProtectedRoute({ children }: { children: React.ReactNode }) {
const { isAuthenticated } = useAuth();
return isAuthenticated ? <>{children}> : ;
}
function AppRoutes() {
return (
Login Page} />
} />
} />
Tenant Detail} />
} />
User Detail} />
Roles List} />
} />
API Keys} />
} />
} />
} />
New Report} />
} />
Settings} />
}
/>
);
}
export function App() {
return (
);
}