//Info: This component is used to display all the time reports for a project. It will display the week number, //total time spent, and if the report has been signed or not. The user can click on a report to edit it. import { useEffect, useState } from "react"; import { WeeklyReport } from "../Types/goTypes"; import { Link, useParams } from "react-router-dom"; import { api } from "../API/API"; /** * Renders a component that displays all the time reports for a specific project. * @returns {JSX.Element} representing the component. */ function AllTimeReportsInProject(): JSX.Element { const { projectName } = useParams(); const [weeklyReports, setWeeklyReports] = useState([]); // Call getProjects when the component mounts useEffect(() => { const getWeeklyReports = async (): Promise => { const token = localStorage.getItem("accessToken") ?? ""; const response = await api.getWeeklyReportsForUser( projectName ?? "", token, ); console.log(response); if (response.success) { setWeeklyReports(response.data ?? []); } else { console.error(response.message); } }; void getWeeklyReports(); }, [projectName]); return ( <>
{weeklyReports.map((newWeeklyReport, index) => (

{"Week: "} {newWeeklyReport.week}

{"Total Time: "} {newWeeklyReport.developmentTime + newWeeklyReport.meetingTime + newWeeklyReport.adminTime + newWeeklyReport.ownWorkTime + newWeeklyReport.studyTime + newWeeklyReport.testingTime}{" "} min

{"Signed: "} {newWeeklyReport.signedBy ? "YES" : "NO"}

))}
); } export default AllTimeReportsInProject;