import React from 'react' import { ContentBlock } from '@/components/shared/ContentBlock' import { compareCEFRLevels } from '@/lib/utils/cefrUtils' interface IdiomAnalysis { idiom: string translation: string meaning: string cefrLevel?: string frequency?: string [key: string]: any } interface IdiomDisplaySectionProps { idioms: IdiomAnalysis[] onIdiomClick: (idiom: IdiomAnalysis, position: { x: number; y: number }) => void className?: string } export const IdiomDisplaySection: React.FC = ({ idioms, onIdiomClick, className = '' }) => { if (!idioms || idioms.length === 0) { return null } const handleIdiomClick = (idiom: IdiomAnalysis, event: React.MouseEvent) => { const rect = event.currentTarget.getBoundingClientRect() const position = { x: rect.left + rect.width / 2, y: rect.bottom + 10 } onIdiomClick(idiom, position) } const shouldShowStar = (idiom: IdiomAnalysis) => { const userLevel = localStorage.getItem('userEnglishLevel') || 'A2' const isHighFrequency = idiom?.frequency === 'high' const idiomCefr = idiom?.cefrLevel || 'A1' const isNotSimpleIdiom = !compareCEFRLevels(userLevel, idiomCefr, '>') return isHighFrequency && isNotSimpleIdiom } return (
{idioms.map((idiom: IdiomAnalysis, index: number) => ( handleIdiomClick(idiom, e)} title={`${idiom.idiom}: ${idiom.translation}`} > {idiom.idiom} {shouldShowStar(idiom) && ( )} ))}
) }