Files
THE-TIP-TOP/frontend/src/App.jsx
Emma781227 2201446ee6 changement
2026-09-14 22:30:40 +02:00

96 lines
3.8 KiB
JavaScript

import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'
import { AuthProvider } from './context/AuthContext.jsx'
import Layout from './components/Layout.jsx'
import ProtectedRoute from './components/ProtectedRoute.jsx'
import CookieBanner from './components/CookieBanner.jsx'
import Connexion from './pages/Connexion'
import Inscription from './pages/Inscription'
import AuthCallback from './pages/AuthCallback'
import DefinirMotDePasse from './pages/DefinirMotDePasse'
import MotDePasseOublie from './pages/MotDePasseOublie'
import NouveauMotDePasse from './pages/NouveauMotDePasse'
import Accueil from './pages/Accueil'
import NotreConcept from './pages/NotreConcept'
import ReglesJeu from './pages/ReglesJeu'
import MesGains from './pages/MesGains'
import Employe from './pages/Employe'
import Admin from './pages/Admin'
import Profile from './pages/Profile'
import SaisirCodeUnique from './pages/SaisirCodeUnique.jsx'
import Perdu from './pages/Perdu'
import NotFound from './pages/NotFound'
import Sitemap from './pages/Sitemap'
import MentionsLegales from './pages/MentionsLegales'
import Confidentialite from './pages/Confidentialite'
import Accessibilite from './pages/Accessibilite'
import Cgu from './pages/Cgu'
import Contact from './pages/Contact.jsx'
export default function App() {
return (
<BrowserRouter>
<AuthProvider>
<Routes>
<Route path="/" element={<Navigate to="/accueil" replace />} />
<Route path="/connexion" element={<Connexion />} />
<Route path="/inscription" element={<Inscription />} />
<Route path="/auth/callback" element={<AuthCallback />} />
<Route path="/mot-de-passe-oublie" element={<MotDePasseOublie />} />
<Route path="/definir-mot-de-passe/:token" element={<DefinirMotDePasse />} />
<Route path="/nouveau-mot-de-passe" element={<NouveauMotDePasse />} />
{/* Pages publiques */}
<Route path="/accueil" element={<Layout><Accueil /></Layout>} />
<Route path="/notre-concept" element={<Layout><NotreConcept /></Layout>} />
<Route path="/regles-jeu" element={<Layout><ReglesJeu /></Layout>} />
<Route path="/mentions-legales" element={<Layout><MentionsLegales /></Layout>} />
<Route path="/confidentialite" element={<Layout><Confidentialite /></Layout>} />
<Route path="/accessibilite" element={<Layout><Accessibilite /></Layout>} />
<Route path="/cgu" element={<Layout><Cgu /></Layout>} />
<Route path="/contact" element={<Layout><Contact /></Layout>} />
<Route path="/sitemap" element={<Layout><Sitemap /></Layout>} />
{/* Pages CLIENT */}
<Route path="/mes-gains" element={
<ProtectedRoute roles={['CLIENT']}>
<Layout><MesGains /></Layout>
</ProtectedRoute>
} />
<Route path="/saisir-code-unique" element={
<ProtectedRoute roles={['CLIENT']}>
<Layout><SaisirCodeUnique /></Layout>
</ProtectedRoute>
} />
<Route path="/profile" element={
<ProtectedRoute roles={['CLIENT']}>
<Layout><Profile /></Layout>
</ProtectedRoute>
} />
<Route path="/perdu" element={
<ProtectedRoute roles={['CLIENT']}>
<Layout><Perdu /></Layout>
</ProtectedRoute>
} />
{/* Page EMPLOYEE */}
<Route path="/employe" element={
<ProtectedRoute roles={['EMPLOYEE']}>
<Layout><Employe /></Layout>
</ProtectedRoute>
} />
{/* Page ADMIN */}
<Route path="/admin" element={
<ProtectedRoute roles={['ADMIN']}>
<Layout><Admin /></Layout>
</ProtectedRoute>
} />
<Route path="*" element={<NotFound />} />
</Routes>
<CookieBanner />
</AuthProvider>
</BrowserRouter>
)
}