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 Expertise

setSearch(e.target.value)} />
{sortedSemesters.map((semester) => (

toggleCourse(courses.courseId)} style={{ marginTop: "20px", fontSize: "20px", color: "#800000" }} > Semester {semester}

{groupedCourses[semester].filter((course) => course.name.toLowerCase().includes(search.toLowerCase())).map((course) => (
toggleCourse(course.courseId)} style={{ cursor: "pointer", padding: "12px", backgroundColor: "#fff", marginBottom: "8px", border: "1px solid #ccc", borderRadius: "4px", fontWeight: "bold" }} > {course.name}
{expandedCourse === course.courseId && ( {courseFacultyMap[course.courseId]?.map((faculty, index) => ( ))}
Faculty ID Name Email Department
{faculty.facultyId} {faculty.name} {faculty.email} {faculty.department}
)}
))}
))}
); }; export default PanelConsolidated;