EvalueTonSavoir/client/src/App.tsx

89 lines
3.4 KiB
TypeScript
Raw Normal View History

import { Routes, Route, Navigate } from 'react-router-dom';
2024-03-29 20:08:34 -04:00
// Page main
import Home from './pages/Home/Home';
// Pages espace enseignant
import Dashboard from './pages/Teacher/Dashboard/Dashboard';
import Share from './pages/Teacher/Share/Share';
import Login from './pages/Teacher/Login/Login';
import Register from './pages/Teacher/Register/Register';
import ResetPassword from './pages/Teacher/ResetPassword/ResetPassword';
import ManageRoom from './pages/Teacher/ManageRoom/ManageRoom';
import QuizForm from './pages/Teacher/EditorQuiz/EditorQuiz';
// Pages espace étudiant
import JoinRoom from './pages/Student/JoinRoom/JoinRoom';
2024-09-29 15:07:16 -04:00
// Pages authentification selection
import AuthSelection from './pages/AuthSelection/AuthSelection';
2024-03-29 20:08:34 -04:00
// Header/Footer import
import Header from './components/Header/Header';
import Footer from './components/Footer/Footer';
import ApiService from './services/ApiService';
2024-09-30 23:05:00 -04:00
import OAuthCallback from './pages/AuthSelection/AuthCallback';
2024-03-29 20:08:34 -04:00
const handleLogout = () => {
ApiService.logout();
};
2024-03-29 20:08:34 -04:00
const isLoggedIn = () => {
2024-09-30 23:05:00 -04:00
const test = ApiService.isLoggedIn();
console.log("App.tsx: " + test);
return test;
};
2024-03-29 20:08:34 -04:00
function App() {
return (
<div className="content">
<Header isLoggedIn={isLoggedIn} handleLogout={handleLogout} />
2024-03-29 20:08:34 -04:00
<div className="app">
<main>
<Routes>
{/* Page main */}
<Route path="/" element={<Home />} />
{/* Pages espace enseignant */}
<Route path="/teacher/login" element={<Login />} />
<Route path="/teacher/register" element={<Register />} />
<Route path="/teacher/resetPassword" element={<ResetPassword />} />
{/* Routes protégées : redirection si l'utilisateur n'est pas connecté */}
<Route
path="/teacher/dashboard"
element={isLoggedIn() ? <Dashboard /> : <Navigate to="/auth-selection" />}
/>
<Route
path="/teacher/share/:id"
element={isLoggedIn() ? <Share /> : <Navigate to="/auth-selection" />}
/>
<Route
path="/teacher/editor-quiz/:id"
element={isLoggedIn() ? <QuizForm /> : <Navigate to="/auth-selection" />}
/>
<Route
path="/teacher/manage-room/:id"
element={isLoggedIn() ? <ManageRoom /> : <Navigate to="/auth-selection" />}
/>
2024-03-29 20:08:34 -04:00
{/* Pages espace étudiant */}
<Route path="/student/join-room" element={isLoggedIn() ? <JoinRoom /> : <Navigate to="/auth-selection" />}
/>
2024-09-29 15:07:16 -04:00
{/* Pages authentification sélection */}
2024-09-29 15:07:16 -04:00
<Route path="/auth-selection" element={<AuthSelection />} />
2024-09-30 23:05:00 -04:00
{/* Pages authentification sélection */}
<Route path="/oauth/callback" element={<OAuthCallback />} />
2024-03-29 20:08:34 -04:00
</Routes>
</main>
</div>
<Footer />
2024-03-29 20:08:34 -04:00
</div>
);
}
export default App;