Question No. {current + 1}
{question.question_text}
{question.question_image_url && (

window.open(question.question_image_url, '_blank')}
/>
)}
{question.question_type === 'mcq' && (
{question.options.map((option, i) => {
const letter = 'ABCD'[i]
const selected = answers[question.id] === letter
return (
setMCQ(letter)}
role="button"
tabIndex={0}
onKeyDown={(event) => {
if (event.key === 'Enter' || event.key === ' ') {
event.preventDefault()
setMCQ(letter)
}
}}
className={clsx('q-option cursor-pointer', selected && 'selected', 'focus-visible:ring-2 focus-visible:ring-sky-500 focus-visible:outline-none')}
>
{letter}.
{option}
{question.option_images?.[letter] && (

{
event.stopPropagation()
window.open(question.option_images[letter], '_blank')
}}
/>
)}
)
})}
)}
{question.question_type === 'msq' && (
One or more correct answers. No negative marking.
{question.options.map((option, i) => {
const letter = 'ABCD'[i]
const selected = (answers[question.id] || '').split(',').includes(letter)
return (
toggleMSQ(letter)}
role="button"
tabIndex={0}
onKeyDown={(event) => {
if (event.key === 'Enter' || event.key === ' ') {
event.preventDefault()
toggleMSQ(letter)
}
}}
className={clsx('q-option cursor-pointer', selected && 'selected-msq', 'focus-visible:ring-2 focus-visible:ring-sky-500 focus-visible:outline-none')}
>
{selected && ✓}
{letter}.
{option}
{question.option_images?.[letter] && (

{
event.stopPropagation()
window.open(question.option_images[letter], '_blank')
}}
/>
)}
)
})}
)}
{question.question_type === 'nat' && (
Enter numerical answer. No negative marking.
setNatInput(event.target.value)}
onBlur={commitNAT}
placeholder="Enter answer..."
aria-label="Numerical Answer"
/>
{answers[question.id] && (
✓ Saved: {answers[question.id]}
)}
)}