+++ /dev/null
-import axios from 'axios';
-import React, { useEffect, useState } from 'react';
-import { BrowserRouter, Route, Routes } from 'react-router-dom';
-
-import Header from './Header';
-import AosFront from '../pages/AosFront';
-import AosGenerate from '../pages/AosGenerate';
-import AosSeed from '../pages/AosSeed';
-import Tracker from '../pages/AosTracker';
-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 <BrowserRouter>
- <AosBaseRomProvider>
- <UserContext.Provider value={user}>
- <Header doLogout={doLogout} />
- <Routes>
- <Route path="generate" element={<AosGenerate />} />
- <Route path="h/:hash" element={<AosSeed />} />
- <Route path="tracker" element={<Tracker />} />
- <Route path="users/:id" element={<User />} />
- <Route path="*" element={<AosFront />} />
- </Routes>
- </UserContext.Provider>
- </AosBaseRomProvider>
- </BrowserRouter>;
-};
-
-export default App;