source: frontend/src/App.js@ d30d820

Last change on this file since d30d820 was d30d820, checked in by MBK <marija.karapandzova@…>, 4 months ago

Add pages and routing for medical recors, medical reports and referrals with api services

  • Property mode set to 100644
File size: 3.9 KB
Line 
1
2
3import React, { useEffect, useState } from 'react';
4import Navbar from './components/Navbar';
5import ProtectedRoute from './components/ProtectedRoute';
6import Login from './pages/Login';
7import PatientList from './pages/patients/PatientList';
8import PatientDetail from './pages/patients/PatientDetail';
9import PatientForm from './pages/patients/PatientForm';
10import DoctorList from './pages/doctors/DoctorList';
11import DoctorDetail from './pages/doctors/DoctorDetail';
12import DoctorForm from './pages/doctors/DoctorForm';v
13import AppointmentList from './pages/appointments/AppointmentList';
14import AppointmentForm from './pages/appointments/AppointmentForm';
15import DepartmentList from './pages/departments/DepartmentList';
16import DepartmentDetail from './pages/departments/DepartmentDetail';
17import DoctorsByDepartment from './pages/departments/DoctorsByDepartment';
18import MedicalRecordList from './pages/medical-records/MedicalRecordList';
19import MedicalRecordDetail from './pages/medical-records/MedicalRecordDetail';
20import ReferralList from './pages/referrals/ReferralList';
21import MedicalReportList from './pages/medical-reports/MedicalReportList';
22
23
24function App() {
25 const [user, setUser] = useState(null);
26
27 useEffect(() => {
28 const userStr = localStorage.getItem('user');
29 if (userStr) {
30 setUser(JSON.parse(userStr));
31 }
32 }, []);
33
34 return (
35 <Router>
36 <div className="min-h-screen bg-gray-50">
37 {user && <Navbar />}
38 <main className={user ? "container mx-auto px-4 py-8" : ""}>
39 <Routes>
40 <Route path="/login" element={<Login />} />
41
42 <Route path="/" element={
43 <ProtectedRoute>
44 <Dashboard />
45 </ProtectedRoute>
46 } />
47
48 {/* Patient Routes */}
49 <Route path="/patients" element={<ProtectedRoute><PatientList /></ProtectedRoute>} />
50 <Route path="/patients/new" element={<ProtectedRoute><PatientForm /></ProtectedRoute>} />
51 <Route path="/patients/:id" element={<ProtectedRoute><PatientDetail /></ProtectedRoute>} />
52 <Route path="/patients/:id/edit" element={<ProtectedRoute><PatientForm /></ProtectedRoute>} />
53
54 {/* Doctor Routes */}
55 <Route path="/doctors" element={<ProtectedRoute><DoctorList /></ProtectedRoute>} />
56 <Route path="/doctors/new" element={<ProtectedRoute><DoctorForm /></ProtectedRoute>} />
57 <Route path="/doctors/:id" element={<ProtectedRoute><DoctorDetail /></ProtectedRoute>} />
58 <Route path="/doctors/:id/edit" element={<ProtectedRoute><DoctorForm /></ProtectedRoute>} />
59
60 {/* Department Routes */}
61 <Route path="/departments" element={<ProtectedRoute><DepartmentList /></ProtectedRoute>} />
62 <Route path="/departments/:departmentId" element={<ProtectedRoute><DepartmentDetail /></ProtectedRoute>} />
63 <Route path="/departments/:departmentId/doctors" element={<ProtectedRoute><DoctorsByDepartment /></ProtectedRoute>} />
64
65 {/* Appointment Routes */}
66 <Route path="/appointments" element={<ProtectedRoute><AppointmentList /></ProtectedRoute>} />
67 <Route path="/appointments/new" element={<ProtectedRoute><AppointmentForm /></ProtectedRoute>} />
68
69 {/* Medical Record Routes */}
70 <Route path="/medical-records" element={<ProtectedRoute><MedicalRecordList /></ProtectedRoute>} />
71 <Route path="/medical-records/:id" element={<ProtectedRoute><MedicalRecordDetail /></ProtectedRoute>} />
72
73 {/* Medical Report Routes */}
74 <Route path="/medical-reports" element={<ProtectedRoute><MedicalReportList /></ProtectedRoute>} />
75
76
77 {/* Referral Routes */}
78 <Route path="/referrals" element={<ProtectedRoute><ReferralList /></ProtectedRoute>} />
79 </Routes>
80 </main>
81 </div>
82 </Router>
83 );
84
85
86
87 }
88export default App;
Note: See TracBrowser for help on using the repository browser.