57 lines
2.0 KiB
React
57 lines
2.0 KiB
React
// src/App.jsx
|
|
import { BrowserRouter, Routes, Route } from 'react-router-dom';
|
|
|
|
// Import des Layouts
|
|
import PublicLayout from './layouts/PublicLayout';
|
|
import AppLayout from './layouts/AppLayout';
|
|
|
|
// Import du Garde du Corps
|
|
import ProtectedRoute from './components/ProtectedRoute';
|
|
|
|
// Import des Pages Publiques
|
|
import Register from './pages/public/Register';
|
|
import Login from './pages/public/Login';
|
|
import Home from './pages/public/Home';
|
|
//import Offres from './pages/public/Offres';
|
|
|
|
// Import des Pages Privées (Espace Client)
|
|
import Dashboard from './pages/app/Dashboard';
|
|
import Store from './pages/app/Store';
|
|
import Checkout from './pages/app/Checkout';
|
|
import Services from './pages/app/Services';
|
|
|
|
export default function App() {
|
|
return (
|
|
<BrowserRouter>
|
|
<Routes>
|
|
|
|
{/* ========================================== */}
|
|
{/* ZONE PUBLIQUE (Accès Libre) */}
|
|
{/* ========================================== */}
|
|
<Route element={<PublicLayout />}>
|
|
<Route path="/" element={<Home />} />
|
|
{/* <Route path="/offres" element={<Offres />} /> */}
|
|
<Route path="/login" element={<Login />} />
|
|
<Route path="/register" element={<Register />} />
|
|
</Route>
|
|
|
|
{/* ========================================== */}
|
|
{/* ZONE PRIVÉE SÉCURISÉE (Le Bunker) */}
|
|
{/* ========================================== */}
|
|
{/* Le Garde du corps bloque l'entrée ici */}
|
|
<Route element={<ProtectedRoute />}>
|
|
|
|
{/* Si autorisé, on charge l'interface avec la Sidebar */}
|
|
<Route element={<AppLayout />}>
|
|
<Route path="/dashboard" element={<Dashboard />} />
|
|
<Route path="/store" element={<Store />} />
|
|
<Route path="/checkout/:productId" element={<Checkout />} />
|
|
<Route path="/services" element={<Services />} />
|
|
</Route>
|
|
|
|
</Route>
|
|
|
|
</Routes>
|
|
</BrowserRouter>
|
|
);
|
|
} |