From 1be13b9148c99dd2bf541349c8ef2bf808a49e2b Mon Sep 17 00:00:00 2001 From: Arik Chakma Date: Wed, 2 Jul 2025 19:25:11 +0600 Subject: [PATCH] wip --- src/components/AIQuiz/AIMCQQuestion.tsx | 75 ++++++++--- src/components/AIQuiz/AIOpenEndedQuestion.tsx | 127 ++++++++++++++++++ src/components/AIQuiz/AIQuiz.tsx | 1 + src/components/AIQuiz/AIQuizContent.tsx | 114 +++++++++++++--- src/components/AIQuiz/GenerateAIQuiz.tsx | 2 +- 5 files changed, 279 insertions(+), 40 deletions(-) create mode 100644 src/components/AIQuiz/AIOpenEndedQuestion.tsx diff --git a/src/components/AIQuiz/AIMCQQuestion.tsx b/src/components/AIQuiz/AIMCQQuestion.tsx index 2e1f34cb0..3cd94cbc0 100644 --- a/src/components/AIQuiz/AIMCQQuestion.tsx +++ b/src/components/AIQuiz/AIMCQQuestion.tsx @@ -2,13 +2,17 @@ import type { QuizQuestion } from '../../queries/ai-quiz'; import { cn } from '../../lib/classname'; import { CheckIcon, XIcon, InfoIcon } from 'lucide-react'; import { markdownToHtml } from '../../lib/markdown'; +import type { QuestionState } from './AIQuizContent'; + +export const markdownClassName = + 'prose prose-lg prose-p:text-lg prose-p:font-normal prose-p:my-0 prose-pre:my-0 prose-p:prose-code:text-base! prose-p:prose-code:px-2 prose-p:prose-code:py-0.5 prose-p:prose-code:rounded-lg prose-p:prose-code:border prose-p:prose-code:border-black text-left text-black'; type AIMCQQuestionProps = { question: QuizQuestion; selectedOptions: number[]; setSelectedOptions: (options: number[]) => void; isSubmitted: boolean; - onSubmit: () => void; + onSubmit: (status: QuestionState['status']) => void; onNext: () => void; }; @@ -51,21 +55,19 @@ export function AIMCQQuestion(props: AIMCQQuestionProps) { return; } - onSubmit(); + const isCorrect = + selectedOptions.every((index) => options[index].isCorrect) && + selectedOptions.length === + options.filter((option) => option.isCorrect).length; + + onSubmit(isCorrect ? 'correct' : 'incorrect'); }; const canSubmit = selectedOptions.length > 0; - const titleHtml = markdownToHtml(questionText, false); - - const markdownClassName = - 'prose prose-lg prose-p:text-lg prose-p:font-normal prose-p:my-0 prose-pre:my-0 prose-p:prose-code:text-base! prose-p:prose-code:px-2 prose-p:prose-code:py-0.5 prose-p:prose-code:rounded-lg prose-p:prose-code:border prose-p:prose-code:border-black text-left text-black'; return (
-
+
{options.map((option, index) => { @@ -137,18 +139,7 @@ export function AIMCQQuestion(props: AIMCQQuestionProps) {
{isSubmitted && answerExplanation && ( -
-

- - Explanation -

-

-

+ )}