X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2FApp.js;h=74cec3d7d9b7703f9a88e7663fe6564026710d71;hb=f642f1eda2a68ad5e09b71ccdae1499bc9d31e4f;hp=a4d02b12aa40a8f4ce85b39e8fb3278849d0a22a;hpb=78ee3a45427e1227013773b2a1c19fc1ee0efc12;p=alttp.git diff --git a/resources/js/components/App.js b/resources/js/components/App.js index a4d02b1..74cec3d 100644 --- a/resources/js/components/App.js +++ b/resources/js/components/App.js @@ -1,18 +1,50 @@ import axios from 'axios'; -import React, { useEffect } from 'react'; +import React, { useEffect, useState } from 'react'; import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import Header from './common/Header'; import Front from './pages/Front'; +import UserContext from '../helpers/UserContext'; const App = () => { + const [user, setUser] = useState(null); + + const checkAuth = async () => { + try { + const response = await axios.get('/api/user'); + setUser(response.data); + } catch (e) { + setUser(null); + } + }; + + const doLogout = async () => { + await axios.post('/logout'); + await checkAuth(); + }; + useEffect(() => { - axios.get('/sanctum/csrf-cookie'); + let timer = null; + axios + .get('/sanctum/csrf-cookie') + .then(() => { + checkAuth(); + timer = setInterval(checkAuth, 15 * 60 * 1000); + }); + return () => { + if (timer) clearInterval(timer); + }; }, []); return - - } /> - + +
+ {user ? + + } /> + + : } + ; };