import React, { useState, useEffect } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import "./CourseTable.css"; import { fetchCourses, fetchAppointments } from "../api"; import FilterPage from "./FilterPage"; import Footer from "./Footer"; const CourseTable = () => { const { state } = useLocation(); const [courses, setCourses] = useState(state?.courses || []); const [appointments, setAppointments] = useState([]); const [loading, setLoading] = useState(!state?.courses); const navigate = useNavigate(); useEffect(() => { const fetchData = async () => { try { const academicYear = state?.academicYear; const [fetchedAppointments, fetchedCourses] = await Promise.all([ fetchAppointments(academicYear), state?.courses ? Promise.resolve(state.courses) : fetchCourses(), ]); setAppointments(fetchedAppointments); if (!state?.courses) setCourses(fetchedCourses); } catch (error) { console.error("Failed to fetch data:", error); } finally { setLoading(false); } }; fetchData(); }, [state?.courses, state?.academicYear]); const getStatus = (courseId) => { return appointments.some((appointment) => appointment.courseId === courseId) ? "Submitted" : "Not Submitted"; }; if (loading) { return
| CourseID | Course Name | Status |
|---|---|---|
| {course.courseId} | {course.name} | {getStatus(course.courseId)} |
| No courses available | ||