X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2FApp.js;h=bea5c34516858a13a2860b7dc81e0a6e236baf0f;hb=1749b3fcda135c9bec820e858bab5af5de6a583c;hp=a4d02b12aa40a8f4ce85b39e8fb3278849d0a22a;hpb=78ee3a45427e1227013773b2a1c19fc1ee0efc12;p=alttp.git diff --git a/resources/js/components/App.js b/resources/js/components/App.js index a4d02b1..bea5c34 100644 --- a/resources/js/components/App.js +++ b/resources/js/components/App.js @@ -1,18 +1,74 @@ import axios from 'axios'; -import React, { useEffect } from 'react'; -import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import React, { useEffect, useState } from 'react'; +import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom'; +import Footer from './common/Footer'; +import Header from './common/Header'; +import AlttpSeed from './pages/AlttpSeed'; import Front from './pages/Front'; +import Technique from './pages/Technique'; +import Techniques from './pages/Techniques'; +import Tournament from './pages/Tournament'; +import User from './pages/User'; +import AlttpBaseRomProvider from '../helpers/AlttpBaseRomContext'; +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(() => { - axios.get('/sanctum/csrf-cookie'); + window.Echo.channel('App.Control') + .listen('PleaseRefresh', () => { + location.reload(); + }); + return () => { + window.Echo.leave('App.Control'); + }; }, []); return - - } /> - + + +
+ + } /> + } /> + } /> + } /> + } /> + } /> + } /> + +