This commit is contained in:
94
App.tsx
Normal file
94
App.tsx
Normal file
@@ -0,0 +1,94 @@
|
||||
import React from 'react';
|
||||
import { Routes, Route, Navigate } from 'react-router-dom';
|
||||
import Login from './pages/LoginPage';
|
||||
import Signup from './pages/SignupPage';
|
||||
import Home from './Home';
|
||||
import SettingsPage from './pages/SettingsPage';
|
||||
import AdminDashboard from './pages/AdminDashboard';
|
||||
import AnalyticsPage from './pages/AnalyticsPage';
|
||||
import ConfigPage from './pages/ConfigPage';
|
||||
import PricingPage from './pages/PricingPage';
|
||||
import XRayPage from './pages/XRayPage';
|
||||
import ScorecardPage from './pages/ScorecardPage';
|
||||
import { useAuth } from './AuthContext';
|
||||
|
||||
const ProtectedRoute = ({ children }: { children: React.ReactNode }) => {
|
||||
const { isAuthenticated } = useAuth();
|
||||
if (!isAuthenticated) return <Navigate to="/login" />;
|
||||
return children;
|
||||
};
|
||||
|
||||
const App: React.FC = () => {
|
||||
return (
|
||||
<Routes>
|
||||
<Route path="/login" element={<Login />} />
|
||||
<Route path="/signup" element={<Signup />} />
|
||||
<Route
|
||||
path="/"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<Home />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/settings"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<SettingsPage />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/admin"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<AdminDashboard />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/admin/analytics"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<AnalyticsPage />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/admin/config"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<ConfigPage />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/pricing"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<PricingPage />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/xray"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<XRayPage />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="/scorecard"
|
||||
element={
|
||||
<ProtectedRoute>
|
||||
<ScorecardPage />
|
||||
</ProtectedRoute>
|
||||
}
|
||||
/>
|
||||
</Routes>
|
||||
);
|
||||
};
|
||||
|
||||
export default App;
|
||||
Reference in New Issue
Block a user