X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Faos%2FApp.js;fp=resources%2Fjs%2Fcomponents%2Faos%2FApp.js;h=82f177c01b6b7a35b3cc1ec1f5fa34e089a21db8;hb=8f8c68f00151100f2a2fa535492847ddb6b7029a;hp=0000000000000000000000000000000000000000;hpb=899836047a90ee13a489142e9b0b70327674e831;p=alttp.git diff --git a/resources/js/components/aos/App.js b/resources/js/components/aos/App.js new file mode 100644 index 0000000..82f177c --- /dev/null +++ b/resources/js/components/aos/App.js @@ -0,0 +1,64 @@ +import axios from 'axios'; +import React, { useEffect, useState } from 'react'; +import { BrowserRouter, Route, Routes } from 'react-router-dom'; + +import Header from './Header'; +import Front from '../pages/Front'; +import User from '../pages/User'; +import AosBaseRomProvider from '../../helpers/AosBaseRomContext'; +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(() => { + let timer = null; + axios + .get('/sanctum/csrf-cookie') + .then(() => { + checkAuth(); + timer = setInterval(checkAuth, 15 * 60 * 1000); + }); + return () => { + if (timer) clearInterval(timer); + }; + }, []); + + useEffect(() => { + window.Echo.channel('App.Control') + .listen('PleaseRefresh', () => { + location.reload(); + }); + return () => { + window.Echo.leave('App.Control'); + }; + }, []); + + return + + +
+ + } /> + } /> + + + + ; +}; + +export default App;