import React, { useState, useCallback, useMemo, memo } from 'react' import { ChoiceTestProps } from '@/types/review' import { TestResultDisplay, ChoiceTestContainer, ChoiceGrid } from '@/components/review/shared' interface VocabChoiceTestProps extends ChoiceTestProps {} const VocabChoiceTestComponent: React.FC = ({ cardData, options, onAnswer, onReportError, disabled = false }) => { const [selectedAnswer, setSelectedAnswer] = useState(null) const [showResult, setShowResult] = useState(false) const handleAnswerSelect = useCallback((answer: string) => { if (disabled || showResult) return setSelectedAnswer(answer) setShowResult(true) onAnswer(answer) }, [disabled, showResult, onAnswer]) const isCorrect = useMemo(() => selectedAnswer === cardData.word , [selectedAnswer, cardData.word]) // 問題顯示區域 const questionArea = (

定義

{cardData.definition}

請選擇符合上述定義的英文詞彙:

) // 選項區域 const optionsArea = ( ) // 結果顯示區域 const resultArea = showResult ? ( ) : null return ( ) } export const VocabChoiceTest = memo(VocabChoiceTestComponent) VocabChoiceTest.displayName = 'VocabChoiceTest'