/
lostSun
/
project-client-server-apps
Обзор
Документация
Войти
/
lostSun
/
project-client-server-apps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/App.js
57 строк
2 KB
1lostsun
update project
25 май 2025, 13:12
25 май 2025, 13:12
78a0079
Код
Авторство
О чём код?
import React from 'react'; import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom'; import { AuthProvider, useAuth } from './contexts/AuthContext'; import Navigation from './components/Navigation/Navigation'; import HomePage from './pages/HomePage/HomePage'; import CatalogPage from './pages/CatalogPage/CatalogPage'; import AddBookPage from './pages/AddBookPage/AddBookPage'; import BookDetailsPage from './pages/BookDetailsPage/BookDetailsPage'; import ProfilePage from './pages/ProfilePage/ProfilePage'; import LoginPage from './pages/LoginPage/LoginPage'; import RegisterPage from './pages/RegisterPage/RegisterPage'; // Защищенный маршрут const PrivateRoute = ({ children }) => { const { user, loading } = useAuth(); if (loading) { return <div>Loading...</div>; } return user ? children : <Navigate to="/login" />; }; function App() { return ( <AuthProvider> <Router> <Navigation /> <Routes> <Route path="/" element={<HomePage />} /> <Route path="/catalog" element={<CatalogPage />} /> <Route path="/book/:id" element={<BookDetailsPage />} /> <Route path="/login" element={<LoginPage />} /> <Route path="/register" element={<RegisterPage />} /> <Route path="/add-book" element={ <PrivateRoute> <AddBookPage /> </PrivateRoute> } /> <Route path="/profile" element={ <PrivateRoute> <ProfilePage /> </PrivateRoute> } /> </Routes> </Router> </AuthProvider> ); } export default App;