import React, { useState } from 'react' import { Modal } from '@/components/ui/Modal' import { ContentBlock } from '@/components/shared/ContentBlock' import { BluePlayButton } from '@/components/shared/BluePlayButton' interface IdiomAnalysis { idiom: string translation: string definition: string pronunciation?: string cefr?: string example?: string exampleTranslation?: string synonyms?: string[] [key: string]: any } interface IdiomPopup { idiom: string analysis: IdiomAnalysis position: { x: number; y: number } } interface IdiomDetailModalProps { idiomPopup: IdiomPopup | null onClose: () => void onSaveIdiom?: (idiom: string, analysis: IdiomAnalysis) => Promise<{ success: boolean; error?: string }> className?: string } export const IdiomDetailModal: React.FC = ({ idiomPopup, onClose, onSaveIdiom, className = '' }) => { if (!idiomPopup) { return null } const { analysis } = idiomPopup const handleSave = async () => { if (onSaveIdiom) { await onSaveIdiom(idiomPopup.idiom, analysis) } } return ( {/* Header */}

{analysis.idiom}

{analysis.pronunciation}
{analysis.cefr || 'A1'}
{/* Content */}
{/* Translation */}

{analysis.translation}

{/* Definition */}

{analysis.definition}

{/* Example */} {analysis.example && (

"{analysis.example}"

{analysis.exampleTranslation}

)} {/* Synonyms */} {analysis.synonyms && Array.isArray(analysis.synonyms) && analysis.synonyms.length > 0 && (
{analysis.synonyms.map((synonym: string, index: number) => ( {synonym} ))}
)}
{/* Save Button */} {onSaveIdiom && (
)}
) }