import { useEffect, useState } from 'react'; import './App.css'; import LoginRegisterPage from './pages/LoginRegisterPage'; import Dashboard from './pages/Dashboard'; import { logout } from './api'; function App() { const [hasToken, setHasToken] = useState(!!localStorage.getItem('token')); useEffect(() => { // Handle OAuth callback: /oauth-callback?access_token=...&token_type=... if (window.location.pathname === '/oauth-callback') { const params = new URLSearchParams(window.location.search); const token = params.get('access_token'); if (token) { localStorage.setItem('token', token); setHasToken(true); } // Clean URL and redirect to home window.history.replaceState({}, '', '/'); } const onStorage = (e: StorageEvent) => { if (e.key === 'token') setHasToken(!!e.newValue); }; window.addEventListener('storage', onStorage); return () => window.removeEventListener('storage', onStorage); }, []); if (!hasToken) { return setHasToken(true)} />; } return ( { logout(); setHasToken(false); }} /> ); } export default App;