import React from 'react'; import { Routes, Route, useLocation, Outlet, Navigate } from 'react-router-dom'; import { useAuth } from './contexts/AuthContext'; import { useUser } from './contexts/UserContext'; import Layout from './pages/Layout'; import LoginPage from './pages/auth/loginPage'; import SignupPage from './pages/auth/signupPage'; import SinglePlayerPage from './pages/tldraw/singlePlayerPage'; import MultiplayerUser from './pages/tldraw/multiplayerUser'; import { ExamDashboardPage, ExamMarkingPage, ExamResultsPage, ExamTemplateSetupPage, MarkSchemePage } from './pages/exam'; import { ErrorBoundary } from './components/ErrorBoundary'; import CalendarPage from './pages/user/calendarPage'; import SettingsPage from './pages/user/settingsPage'; import TLDrawCanvas from './pages/tldraw/TLDrawCanvas'; import AdminDashboard from './pages/auth/adminPage'; import PlatformAdminPage from './pages/auth/PlatformAdminPage'; import TLDrawDevPage from './pages/tldraw/devPlayerPage'; import DevPage from './pages/tldraw/devPage'; import TeacherPlanner from './pages/react-flow/teacherPlanner'; import MorphicPage from './pages/morphicPage'; import NotFound from './pages/user/NotFound'; import NotFoundPublic from './pages/NotFoundPublic'; import ShareHandler from './pages/tldraw/ShareHandler'; import SearxngPage from './pages/searxngPage'; import SimpleUploadTest from './pages/dev/SimpleUploadTest'; import { logger } from './debugConfig'; import { CircularProgress } from '@mui/material'; import { CCDocumentIntelligence } from './pages/tldraw/CCDocumentIntelligence/CCDocumentIntelligence'; import DashboardPage from './pages/user/dashboardPage'; // Timetable Module Pages import { TimetablePage, TimetableListPage, ClassesPage, LessonPage, TaughtLessonsPage, MyClassesPage, EnrollmentRequestsPage, StaffManagerPage, StudentManagerPage, SchoolSettingsPage, ClassDetailPage, StudentLessonsPage, LessonPlansPage, LessonPlanDetailPage, } from './pages/timetable'; const FullContextRoutes: React.FC = () => { const { isInitialized: isUserInitialized } = useUser(); if (!isUserInitialized) { return (