This commit is contained in:
Philippe Torrel
2026-10-29 10:08:58 +01:00
parent d823a35ac1
commit cdb30b2ea3
141 changed files with 14589 additions and 10 deletions
@@ -0,0 +1,81 @@
import { Navigate, Route, Routes } from 'react-router-dom';
//import { createBrowserRouter, RouterProvider } from 'react-router-dom';
// Pages Komponenten
import HomePage from '../pages/HomePage';
import AboutPage from '../pages/AboutPage';
import ContactPage from '../pages/ContactPage';
import UserProfilePage from '../pages/UserProfilePage';
import UserPage from '../pages/UserPage';
import ApiPage from '../pages/ApiPage';
import JokePage from '../pages/JokePage';
// import Layout from '../layouts/Layout';
// Alternative Definition von Routes über "createBrowserRouter" mit Objekten
// const router = createBrowserRouter([
// { path: '/', element: <HomePage /> },
// { path: '/about', element: <AboutPage /> },
// { path: '/contact', element: <ContactPage /> },
// ]);
// // App.jsx
// <RouterProvider router={router}>{/*<App />*/}</RouterProvider>;
const checkAuth = () => {
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 = () => {
// const { } = props;
return (
<Routes>
{/* Static Routes */}
<Route path="/" element={<HomePage />} />
<Route path="/about" element={<AboutPage />} />
<Route path="/contact" element={<ContactPage />} />
<Route path="/api" element={<ApiPage />} />
<Route path="/joke" element={<JokePage />} />
{/* Dynamic Routes */}
<Route path="/flights/:from/:to" element={<h2>Flights</h2>} />
<Route path="/user/:userId" element={<UserProfilePage />} />
{/* Nested Routes */}
{/* <Route path="/" element={<Layout />}>
<Route index element={<HomePage />} />
<Route path="about" element={<AboutPage />} />
<Route path="contact" element={<ContactPage />} />
</Route> */}
<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 path="settings" element={<h5>Settings</h5>} />
</Route>
{/* Protected Routes | Geschützte Routen */}
<Route
path="/protected"
element={
<ProtectedRoute redirectTo="/">
<div className="page-admin-dashboard container py-5">
<h2>Admin Dashboard Page</h2>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Vero atque eveniet hic temporibus</p>
</div>
</ProtectedRoute>
}></Route>
</Routes>
);
};
export default Router;