import CheckIcon from "@/components/icons/CheckIcon";
import MarkdownDisplay from "@/components/MarkdownDisplay";
import {
LocalQuizQuestion,
QuestionType,
} from "@/features/local/quizzes/models/localQuizQuestion";
import { useQuizQuery } from "@/features/local/quizzes/quizHooks";
import { escapeMatchingText } from "@/services/utils/questionHtmlUtils";
export default function QuizPreview({
moduleName,
quizName,
}: {
quizName: string;
moduleName: string;
}) {
const { data: quiz } = useQuizQuery(moduleName, quizName);
return (
Points
{quiz.questions.reduce((sum, question) => sum + question.points, 0)}
Shuffle Answers
{quiz.shuffleAnswers}
Allowed Attempts
{quiz.allowedAttempts}
One Question at a Time
{quiz.oneQuestionAtATime}
Assignment Group Name
{quiz.localAssignmentGroupName}
{quiz.questions.map((question, i) => (
))}
);
}
function QuizQuestionPreview({ question }: { question: LocalQuizQuestion }) {
return (
{question.questionType}
{question.points} {question.points === 1 ? " Point" : " Points"}
{/* Feedback Section */}
{(question.correctComments ||
question.incorrectComments ||
question.neutralComments) && (
Feedback
{question.correctComments && (
+
)}
{question.incorrectComments && (
-
)}
{question.neutralComments && (
...
)}
)}
{question.questionType === QuestionType.MATCHING && (
{question.answers.map((answer) => (
{escapeMatchingText(answer.text)}
{answer.matchedText}
))}
{question.matchDistractors.map((distractor) => (
DISTRACTOR: {distractor}
))}
)}
{question.questionType !== QuestionType.MATCHING && (
{question.answers.map((answer) => (
{answer.correct ? (
) : question.questionType === QuestionType.MULTIPLE_ANSWERS ? (
{"[ ]"}
) : (
)}
))}
)}
);
}