/
Krams
/
nodemon
Обзор
Документация
Войти
/
Krams
/
nodemon
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/App.js
52 строки
2 KB
Krams
first_commit
08 июн 2025, 12:17
08 июн 2025, 12:17
25d7395
Код
Авторство
О чём код?
import React, { useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Route, BrowserRouter as Router, Routes } from 'react-router-dom'; import Map from './pages/Map'; import NodeProfile from './pages/NodeProfile'; import NodesPieChartPage from './pages/NodesPieChartPage'; import NodesList from './pages/NodesList'; import LoginPage from './pages/LoginPage'; import ListsPage from './pages/ListsPage'; import Header from './components/Header'; import PrivateRoute from './components/PrivateRoute'; import BlockProfile from './pages/BlockProfile'; import { fetchCurrentUserThunk } from './features/auth/authThunks'; import 'bootstrap/dist/css/bootstrap.min.css'; import { Spinner } from 'react-bootstrap'; function App() { const dispatch = useDispatch(); const [loading, setLoading] = useState(true); const isAuthenticated = useSelector((state) => state.auth.isAuthenticated); useEffect(() => { dispatch(fetchCurrentUserThunk()).finally(() => setLoading(false)); }, [dispatch]); if (loading) { return <div className="bg-dark text-light min-vh-100 d-flex align-items-center justify-content-center"><Spinner /></div>; } return ( <Router> <div className="bg-dark text-light min-vh-100"> <Header /> <Routes> <Route path="/map" element={<PrivateRoute><Map /></PrivateRoute>} /> <Route path="/" element={<PrivateRoute><Map /></PrivateRoute>} /> <Route path="/node/:nodeId" element={<PrivateRoute><NodeProfile /></PrivateRoute>} /> <Route path="/chart" element={<PrivateRoute><NodesPieChartPage /></PrivateRoute>} /> <Route path="/list" element={<PrivateRoute><NodesList /></PrivateRoute>} /> <Route path="/lists" element={<PrivateRoute><ListsPage /></PrivateRoute>} /> <Route path="/login" element={isAuthenticated ? <Map /> : <LoginPage />} /> <Route path="/block/:blockId" element={<PrivateRoute><BlockProfile /></PrivateRoute>} /> <Route path="*" element={<PrivateRoute><Map /></PrivateRoute>} /> </Routes> </div> </Router> ); } export default App;