import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { TableBody, TableCell, TableRow } from "@mui/material"; import { faCheck, faCircleXmark } from '@fortawesome/free-solid-svg-icons'; import { FormattedTextTemplate } from '../../../GiftTemplate/templates/TextTypeTemplate'; import React from "react"; import { StudentType } from "src/Types/StudentType"; interface LiveResultsFooterProps { maxQuestions: number; students: StudentType[]; showUsernames: boolean; showCorrectAnswers: boolean; getStudentGrade: (student: StudentType) => number; } const LiveResultsTableFooter: React.FC = ({ maxQuestions, students, showUsernames, showCorrectAnswers, getStudentGrade }) => { return ( {students.map((student) => (
{showUsernames ? student.name : '******'}
{Array.from({ length: maxQuestions }, (_, index) => { const answer = student.answers.find( (answer) => parseInt(answer.idQuestion.toString()) === index + 1 ); const answerText = answer ? Array.isArray(answer.answer) ? answer.answer.join(', ') // Join array elements with a space or another delimiter : "" // never reached : ''; const isCorrect = answer ? answer.isCorrect : false; return ( {showCorrectAnswers ? ( // strips out formatting of answer text here (it will break images, katex, etc.)
) : isCorrect ? ( ) : ( answerText !== '' && ( ) )}
); })} {getStudentGrade(student).toFixed()} %
))}
); }; export default LiveResultsTableFooter;