1 import axios from 'axios';
2 import React, { useEffect, useState } from 'react';
3 import { BrowserRouter, Route, Routes } from 'react-router-dom';
5 import Header from './Header';
6 import AosFront from '../pages/AosFront';
7 import AosGenerate from '../pages/AosGenerate';
8 import AosSeed from '../pages/AosSeed';
9 import Tracker from '../pages/AosTracker';
10 import User from '../pages/User';
11 import AosBaseRomProvider from '../../helpers/AosBaseRomContext';
12 import UserContext from '../../helpers/UserContext';
15 const [user, setUser] = useState(null);
17 const checkAuth = async () => {
19 const response = await axios.get('/api/user');
20 setUser(response.data);
26 const doLogout = async () => {
27 await axios.post('/logout');
34 .get('/sanctum/csrf-cookie')
37 timer = setInterval(checkAuth, 15 * 60 * 1000);
40 if (timer) clearInterval(timer);
45 window.Echo.channel('App.Control')
46 .listen('PleaseRefresh', () => {
50 window.Echo.leave('App.Control');
54 return <BrowserRouter>
56 <UserContext.Provider value={user}>
57 <Header doLogout={doLogout} />
59 <Route path="generate" element={<AosGenerate />} />
60 <Route path="h/:hash" element={<AosSeed />} />
61 <Route path="tracker" element={<Tracker />} />
62 <Route path="users/:id" element={<User />} />
63 <Route path="*" element={<AosFront />} />
65 </UserContext.Provider>