import React, { useEffect, useState } from 'react'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import Navbar from './components/Navbar'; import ProtectedRoute from './components/ProtectedRoute'; import Login from './pages/Login'; import Dashboard from './pages/Dashboard'; import PatientList from './pages/patients/PatientList'; import PatientDetail from './pages/patients/PatientDetail'; import PatientForm from './pages/patients/PatientForm'; import DoctorList from './pages/doctors/DoctorList'; import DoctorDetail from './pages/doctors/DoctorDetail'; import DoctorForm from './pages/doctors/DoctorForm'; import AppointmentList from './pages/appointments/AppointmentList'; import AppointmentForm from './pages/appointments/AppointmentForm'; import MedicalRecordList from './pages/medical-records/MedicalRecordList'; import MedicalRecordDetail from './pages/medical-records/MedicalRecordDetail'; import BillingList from './pages/billing/BillingList'; import BillingDetail from './pages/billing/BillingDetail'; import ReferralList from './pages/referrals/ReferralList'; import MedicalReportList from './pages/medical-reports/MedicalReportList'; import LabTestList from './pages/lab-tests/LabTestList'; import LabResultForm from './pages/lab-tests/LabResultForm'; import ProcedureList from './pages/procedures/ProcedureList'; import ProcedureResultForm from './pages/procedures/ProcedureResultForm'; import DepartmentList from './pages/departments/DepartmentList'; import DepartmentDetail from './pages/departments/DepartmentDetail'; import DoctorsByDepartment from './pages/departments/DoctorsByDepartment'; function App() { const [user, setUser] = useState(null); const [refresh, setRefresh] = useState(0); useEffect(() => { const loadUser = () => { const userStr = localStorage.getItem('user'); if (userStr) { try { setUser(JSON.parse(userStr)); } catch (err) { console.error('Failed to parse user:', err); setUser(null); } } else { setUser(null); } }; loadUser(); // Listen for storage changes (other tabs/windows) window.addEventListener('storage', loadUser); // Create a custom event listener for same-tab changes const handleStorageChange = (e) => { console.log('Storage change detected:', e.detail); loadUser(); }; window.addEventListener('userStorageChange', handleStorageChange); return () => { window.removeEventListener('storage', loadUser); window.removeEventListener('userStorageChange', handleStorageChange); }; }, [refresh]); return (
{user && }
} /> } /> {/* Patient Routes */} } /> } /> } /> } /> {/* Doctor Routes */} } /> } /> } /> } /> {/* Department Routes */} } /> } /> } /> {/* Appointment Routes */} } /> } /> {/* Medical Record Routes */} } /> } /> {/* Medical Report Routes */} } /> {/* Lab Test Routes */} } /> } /> {/* Procedure Routes */} } /> } /> {/* Billing Routes */} } /> } /> {/* Referral Routes */} } />
); } export default App;