import React from "react"; import Input from "@/components/Low/Input"; import { MultipleChoiceExercise, MultipleChoiceQuestion, } from "@/interfaces/exam"; import Select from "@/components/Low/Select"; interface Props { exercise: MultipleChoiceExercise; updateExercise: (data: any) => void; } const variantOptions = [ { value: "text", label: "Text", key: "text" }, { value: "image", label: "Image", key: "src" }, ]; const MultipleChoiceEdit = (props: Props) => { const { exercise, updateExercise } = props; return ( <>

Questions

{exercise.questions.map((question: MultipleChoiceQuestion, index) => { const variantValue = variantOptions.find( (o) => o.value === question.variant ); const solutionsOptions = question.options.map((option) => ({ value: option.id, label: option.id, })); const solutionValue = solutionsOptions.find( (o) => o.value === question.solution ); return (
Question ID: {question.id} updateExercise({ questions: exercise.questions.map((sol) => sol.id === question.id ? { ...sol, prompt: value } : sol ), }) } />
{ updateExercise({ questions: exercise.questions.map((sol) => sol.id === question.id ? { ...sol, variant: value?.value } : sol ), }); }} />
{question.options.map((option) => (
updateExercise({ questions: exercise.questions.map((sol) => sol.id === question.id ? { ...sol, options: sol.options.map((opt) => { if ( opt.id === option.id && variantValue?.key ) { return { ...opt, [variantValue.key]: value, }; } return opt; }), } : sol ), }) } />
))}
); })}
); }; export default MultipleChoiceEdit;