/* eslint-disable @next/next/no-img-element */ import {WritingExercise} from "@/interfaces/exam"; import {CommonProps} from "."; import {Fragment, useEffect, useState} from "react"; import Button from "../Low/Button"; import {Dialog, Tab, Transition} from "@headlessui/react"; import {writingReverseMarking} from "@/utils/score"; import clsx from "clsx"; import ReactDiffViewer, {DiffMethod} from "react-diff-viewer"; export default function Writing({id, type, prompt, attachment, userSolutions, onNext, onBack}: WritingExercise & CommonProps) { const [isModalOpen, setIsModalOpen] = useState(false); const [showDiff, setShowDiff] = useState(false); return ( <> {attachment && ( setIsModalOpen(false)} className="relative z-50">
{attachment.description}
)}
{prompt.split("\\n").map((line, index) => (

{line}


))}
{attachment && ( setIsModalOpen(true)} src={attachment.url} alt={attachment.description} className="max-w-[200px] self-center rounded-xl cursor-pointer" /> )}
{userSolutions && userSolutions.length > 0 && (
{!showDiff && ( <> Your answer:
{userSolutions[0]!.solution.replaceAll("\\n", "\n")}
)} {showDiff && ( <> Correction:
)} {userSolutions[0].solution && userSolutions[0].evaluation?.fixed_text && ( )}
)} {userSolutions && userSolutions.length > 0 && userSolutions[0].evaluation && typeof userSolutions[0].evaluation !== "string" && (
{Object.keys(userSolutions[0].evaluation!.task_response).map((key) => (
{key}: Level {userSolutions[0].evaluation!.task_response[key]}
))}
{userSolutions[0].evaluation && userSolutions[0].evaluation.perfect_answer ? ( clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-ielts-writing/80", "ring-white ring-opacity-60 ring-offset-2 ring-offset-ielts-writing focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-ielts-writing", ) }> Evaluation clsx( "w-full rounded-lg py-2.5 text-sm font-medium leading-5 text-ielts-writing/80", "ring-white ring-opacity-60 ring-offset-2 ring-offset-ielts-writing focus:outline-none focus:ring-2", "transition duration-300 ease-in-out", selected ? "bg-white shadow" : "text-blue-100 hover:bg-white/[0.12] hover:text-ielts-writing", ) }> Recommended Answer {userSolutions[0].evaluation!.comment} {userSolutions[0].evaluation!.perfect_answer.replaceAll(/\s{2,}/g, "\n\n").replaceAll("\\n", "\n")} ) : (
{userSolutions[0].evaluation!.comment}
)}
)}
); }