import React, { useState, useEffect } from "react";
import axios from "axios";
import Navbar from "./Navbar";
const PanelConsolidated = () => {
const [faculty, setFaculty] = useState([]);
const [courses, setCourses] = useState([]);
const [search, setSearch] = useState("");
const [expandedCourse, setExpandedCourse] = useState(null);
useEffect(() => {
axios.get("http://localhost:8080/api/faculty")
.then((response) => {
setFaculty(response.data);
})
.catch((error) => {
console.error("Error fetching faculty data:", error);
});
axios.get("http://localhost:8080/api/courses")
.then((response) => {
setCourses(response.data);
})
.catch((error) => {
console.error("Error fetching course data:", error);
});
}, []);
const groupedCourses = {};
courses.forEach((course) => {
if (!groupedCourses[course.semester]) {
groupedCourses[course.semester] = [];
}
groupedCourses[course.semester].push(course);
});
const sortedSemesters = Object.keys(groupedCourses).sort((a, b) => a - b);
const courseFacultyMap = {};
faculty.forEach((fac) => {
fac.courses.forEach((courseId) => {
if (!courseFacultyMap[courseId]) {
courseFacultyMap[courseId] = [];
}
courseFacultyMap[courseId].push({
facultyId: fac.facultyId,
name: fac.name,
department: fac.department,
email: fac.email,
});
});
});
const toggleCourse = (courseId) => {
setExpandedCourse(expandedCourse === courseId ? null : courseId);
};
return (
<>
| Faculty ID | Name | Department | |
|---|---|---|---|
| {faculty.facultyId} | {faculty.name} | {faculty.email} | {faculty.department} |