import { TableCell, TableFooter, TableRow } from "@mui/material"; import React, { useMemo } from "react"; import { StudentType } from "src/Types/StudentType"; interface LiveResultsFooterProps { students: StudentType[]; maxQuestions: number; getStudentGrade: (student: StudentType) => number; } const LiveResultsTableFooter: React.FC = ({ maxQuestions, students, getStudentGrade }) => { const getCorrectAnswersPerQuestion = (index: number): number => { return ( (students.filter((student) => student.answers.some( (answer) => parseInt(answer.idQuestion.toString()) === index + 1 && answer.isCorrect ) ).length / students.length) * 100 ); }; const classAverage: number = useMemo(() => { let classTotal = 0; students.forEach((student) => { classTotal += getStudentGrade(student); }); return classTotal / students.length; }, [students]); return (
% réussite
{Array.from({ length: maxQuestions }, (_, index) => ( {students.length > 0 ? `${getCorrectAnswersPerQuestion(index).toFixed()} %` : '-'} ))} {students.length > 0 ? `${classAverage.toFixed()} %` : '-'}
); }; export default LiveResultsTableFooter;