X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2FApp.js;h=cd21ed0e31e90d6dff4e2e11dbf268329d324176;hb=a439a2eb428e8f881fd6ed6309e600a664c9b3de;hp=a4d02b12aa40a8f4ce85b39e8fb3278849d0a22a;hpb=78ee3a45427e1227013773b2a1c19fc1ee0efc12;p=alttp.git diff --git a/resources/js/components/App.js b/resources/js/components/App.js index a4d02b1..cd21ed0 100644 --- a/resources/js/components/App.js +++ b/resources/js/components/App.js @@ -1,18 +1,68 @@ 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 Front from './pages/Front'; +import Header from './common/Header'; +import AlttpSeed from './pages/AlttpSeed'; +import Technique from './pages/Technique'; +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 - - } /> - + + +
+ + } /> + } /> + } /> + } /> + } /> + + + ; };