Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | 2x 2x 2x 2x 6x 2x 6x 2x 6x 13x 4x 9x 2x 7x 13x 13x 13x 13x 13x | import Card from "react-bootstrap/Card";
// Stryker disable StringLiteral : otherwise we would have to test for every possible day and month value, which is not practical
const dayToStringMap = {
M: "Monday",
T: "Tuesday",
W: "Wednesday",
R: "Thursday",
F: "Friday",
S: "Saturday",
U: "Sunday",
};
const monthToStringMap = {
"01": "January",
"02": "February",
"03": "March",
"04": "April",
"05": "May",
"06": "June",
"07": "July",
"08": "August",
"09": "September",
10: "October",
11: "November",
12: "December",
};
const emptyString = "";
// Stryker restore StringLiteral
const dayToString = (day) => {
return dayToStringMap[day] || day;
};
const monthToString = (month) => {
return monthToStringMap[month] || month;
};
const formatDate = (date) => {
return `${monthToString(date.substring(4, 6))} ${parseInt(date.substring(6, 8))}, ${date.substring(0, 4)}`;
};
// cardProps can be used to pass additional props to the Card component, such as styling or className
function FinalExamCard({ finalsInfo, cardProps = {} }) {
if (!finalsInfo) {
return null;
}
if (finalsInfo.hasFinals === false) {
return (
<Card {...cardProps}>
<Card.Body>
<Card.Title>Final Exam:</Card.Title>
<Card.Text>
{finalsInfo.comments
? finalsInfo.comments
: "No final exam information available."}
</Card.Text>
</Card.Body>
</Card>
);
}
const day = finalsInfo.examDay
? dayToString(finalsInfo.examDay)
: emptyString;
const date = finalsInfo.examDate
? formatDate(finalsInfo.examDate)
: emptyString;
const beginTime = finalsInfo.beginTime ? finalsInfo.beginTime : emptyString;
const endTime = finalsInfo.endTime ? finalsInfo.endTime : emptyString;
const examInfoString = finalsInfo.examDay
? `${day}, ${date} ${beginTime}—${endTime}`
: "Exam information not available.";
return (
<Card {...cardProps}>
<Card.Body>
<Card.Title>Final Exam:</Card.Title>
<Card.Text>{examInfoString}</Card.Text>
</Card.Body>
</Card>
);
}
export default FinalExamCard;
|