import { Navigate, Route, Routes } from 'react-router-dom' import { LoginPage } from '@/pages/LoginPage' import { RegisterPage } from '@/pages/RegisterPage' import { VerifyEmailPage } from '@/pages/VerifyEmailPage' import { ConsentPolicyPage } from '@/pages/ConsentPolicyPage' import { LobbyPage } from '@/pages/LobbyPage' import { JoinPage } from '@/pages/JoinPage' import { RoomPage } from '@/pages/RoomPage' import { CalendarPage } from '@/pages/CalendarPage' import { MyConferencesPage } from '@/pages/MyConferencesPage' import { ProfilePage } from '@/pages/ProfilePage' import { AdminPage } from '@/pages/AdminPage' import { RequireAuth } from '@/auth/RequireAuth' import { RequireAdmin } from '@/auth/RequireAdmin' function App() { return ( } /> } /> } /> } /> {/* Публичная страница регламента обработки ПДн — читается до регистрации, когда пользователя ещё нет; ссылка на неё — рядом с галочкой согласия на RegisterPage. */} } /> } /> {/* Подключение по ссылке/номеру — публичное: доступно и гостю без аккаунта. */} } /> } /> {/* * Комната конференции — тоже публичная: гость подключается по токену, * переданному через navigation state из JoinPage (без JWT-сессии * приложения). Авторизация внутри самой страницы не требуется — см. * комментарий в RoomPage.tsx. */} } /> } /> } /> } /> } /> } /> ) } export default App