2024-09-30 11:07:23 -04:00
|
|
|
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-09-30 11:07:23 -04:00
|
|
|
};
|
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-09-30 11:07:23 -04:00
|
|
|
};
|
2024-03-29 20:08:34 -04:00
|
|
|
|
|
|
|
|
function App() {
|
|
|
|
|
return (
|
|
|
|
|
<div className="content">
|
2024-09-30 11:07:23 -04:00
|
|
|
<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 />} />
|
2024-09-30 11:07:23 -04:00
|
|
|
|
|
|
|
|
{/* 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 */}
|
2024-09-30 11:07:23 -04:00
|
|
|
<Route path="/student/join-room" element={isLoggedIn() ? <JoinRoom /> : <Navigate to="/auth-selection" />}
|
|
|
|
|
/>
|
2024-09-29 15:07:16 -04:00
|
|
|
|
2024-09-30 11:07:23 -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>
|
2024-09-30 11:07:23 -04:00
|
|
|
<Footer />
|
2024-03-29 20:08:34 -04:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default App;
|