import React, { useEffect, useState } from 'react'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import { setUpToken, clearToken } from './utils/auth'; // Import the token utilities import ResponsiveAppBar from './components/ResponsiveAppBar'; import ShipmentView from './pages/ShipmentView'; import HomePage from './pages/HomeView'; import ResultsView from './pages/ResultsView'; import PlanningView from './pages/PlanningView'; import Modal from './components/Modal'; import AddressManager from './pages/AddressManagerView'; import ContactsManager from './pages/ContactsManagerView'; import LoginView from './pages/LoginView'; import ProtectedRoute from './components/ProtectedRoute'; import BeamtimeOverview from './components/BeamtimeOverview'; const App: React.FC = () => { const [openAddressManager, setOpenAddressManager] = useState(false); const [openContactsManager, setOpenContactsManager] = useState(false); const handleOpenAddressManager = () => setOpenAddressManager(true); const handleCloseAddressManager = () => setOpenAddressManager(false); const handleOpenContactsManager = () => setOpenContactsManager(true); const handleCloseContactsManager = () => setOpenContactsManager(false); const [pgroups, setPgroups] = useState([]); const [activePgroup, setActivePgroup] = useState(''); // On app load, configure the token useEffect(() => { setUpToken(); // Ensure token is loaded into OpenAPI on app initialization }, []); useEffect(() => { const updateStateFromLocalStorage = () => { const user = localStorage.getItem('user'); console.log("[DEBUG] User data in localStorage (update):", user); // Debug if (user) { try { const parsedUser = JSON.parse(user); if (parsedUser.pgroups && Array.isArray(parsedUser.pgroups)) { setPgroups(parsedUser.pgroups); setActivePgroup(parsedUser.pgroups[0] || ''); console.log("[DEBUG] Pgroups updated in state:", parsedUser.pgroups); } else { console.warn("[DEBUG] No pgroups found in user data"); } } catch (error) { console.error("[DEBUG] Error parsing user data:", error); } } else { console.warn("[DEBUG] No user in localStorage"); } }; // Run on component mount updateStateFromLocalStorage(); // Listen for localStorage changes window.addEventListener('storage', updateStateFromLocalStorage); // Cleanup listener on unmount return () => { window.removeEventListener('storage', updateStateFromLocalStorage); }; }, []); const handlePgroupChange = (newPgroup: string) => { setActivePgroup(newPgroup); console.log(`pgroup changed to: ${newPgroup}`); }; return ( } /> } />} /> } />} /> } />} /> } />} /> } />} /> } />}/> {/* Optionally, add a 404 fallback route */} Page not found} /> ); }; export default App;