/
CheateRYT
/
Order_database
Обзор
Документация
Войти
/
CheateRYT
/
Order_database
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
server/client/src/utils/PrivateRoute.tsx
43 строки
1 KB
Lev Rednikov
Feat: fix private router and add create,update,accept order
09 июн 2024, 02:15
09 июн 2024, 02:15
240b7f6
Код
Авторство
О чём код?
import React, { useEffect, useState } from 'react'; import { Navigate } from 'react-router-dom'; import Cookies from 'js-cookie'; import axios from 'axios'; import {userStore} from "../store/userStore.ts"; const PrivateRouter = ({ Page }: { Page: React.ComponentType }) => { const [loading, setLoading] = useState(true); useEffect(() => { const getUserFromServer = async () => { try { const token = Cookies.get('token'); if (token) { const response = await axios.get('http://localhost:8000/api/user/current', { headers: { Authorization: `Bearer ${token}` } }); userStore.setState({ user: response.data }); } } catch (error) { console.error("An error occurred while fetching the current user", error); } finally { setLoading(false); } }; getUserFromServer(); }, []); if (loading) { return <p>Loading...</p>; } if (Object.keys(userStore.getState().user).length !== 0) { return <Page />; } else { return <Navigate to="/login" />; } }; export default PrivateRouter;