This commit is contained in:
Philippe Torrel
2026-08-12 09:54:03 +02:00
parent 0d8d00db9e
commit 3188718f5e
522 changed files with 53678 additions and 2 deletions

View File

@@ -0,0 +1,61 @@
import { Routes, Route, Navigate } from 'react-router-dom';
import About from '../pages/AboutPage';
import Home from '../pages/HomePage';
import Contact from '../pages/ContactPage';
import UserProfilePage from '../pages/UserProfilePage';
import UserPage from '../pages/UserPage';
// Prinzip einer geschützen Route-Komponente
const checkAuth = () => {
// localStorage.setItem('token', 'secret-token');
const token = localStorage.getItem('token');
return token && token === 'secret-token' ? true : false;
};
const ProtectedRoute = (props) => {
const { redirectTo = '/', children } = props;
const isAuthenticated = checkAuth(); // true | false // Authentication -Prüfung
return isAuthenticated ? <>{children}</> : <Navigate to={redirectTo} replace={true} />;
};
const Router = (props) => {
// const { } = props;
return (
<Routes>
{/* Static Routes */}
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
{/* Dynamic Routes */}
<Route path="/flights/:from/:to" element={<h2>Flights</h2>} />
<Route path="/user/:userId" element={<UserProfilePage />} />
{/* Nested Routes | Verschachtelte Routen */}
<Route path="/user" element={<UserPage />}>
<Route index element={<h5>Index</h5>} />
<Route path="profile" element={<h5>Profile</h5>} />
<Route path="dashboard" element={<h5>Dashboard</h5>} />
</Route>
{/* Protected Routes | Geschützte Routen */}
<Route
path="/protected"
element={
<ProtectedRoute redirectTo="/">
<div className="container py-5">
<h2>Admin Dashboard Page</h2>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Ad, ex?</p>
</div>
</ProtectedRoute>
}></Route>
</Routes>
);
};
export default Router;