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 (
Name
{quiz.name}
Points
{quiz.questions.reduce((sum, question) => sum + question.points, 0)}
Due Date
{quiz.dueAt}
Lock At
{quiz.lockAt}
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 ? ( {"[ ]"} ) : (
)}
))}
)}
); }