'use client' import { useState } from 'react' import { Dialog, DialogContent } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' import { X, Sparkles, ThumbsUp, ThumbsDown } from 'lucide-react' import { cn } from '@/lib/utils' import { Note } from '@/lib/types' import { useLanguage } from '@/lib/i18n/LanguageProvider' interface ComparisonModalProps { isOpen: boolean onClose: () => void notes: Array> similarity?: number onOpenNote?: (noteId: string) => void } export function ComparisonModal({ isOpen, onClose, notes, similarity, onOpenNote }: ComparisonModalProps) { const { t } = useLanguage() const [feedback, setFeedback] = useState<'thumbs_up' | 'thumbs_down' | null>(null) const handleFeedback = async (type: 'thumbs_up' | 'thumbs_down') => { setFeedback(type) // TODO: Send feedback to backend setTimeout(() => { onClose() }, 500) } const getNoteColor = (index: number) => { const colors = [ 'border-blue-200 dark:border-blue-800 hover:border-blue-300 dark:hover:border-blue-700', 'border-purple-200 dark:border-purple-800 hover:border-purple-300 dark:hover:border-purple-700', 'border-green-200 dark:border-green-800 hover:border-green-300 dark:hover:border-green-700' ] return colors[index % colors.length] } const getTitleColor = (index: number) => { const colors = [ 'text-blue-600 dark:text-blue-400', 'text-purple-600 dark:text-purple-400', 'text-green-600 dark:text-green-400' ] return colors[index % colors.length] } const maxModalWidth = notes.length === 2 ? 'max-w-6xl' : 'max-w-7xl' const similarityPercentage = similarity ? Math.round(similarity * 100) : 0 return ( {/* Header */}

{t('memoryEcho.comparison.title')}

{t('memoryEcho.comparison.similarityInfo', { similarity: similarityPercentage })}

{/* AI Insight Section - Optional for now */} {similarityPercentage >= 80 && (

{t('memoryEcho.comparison.highSimilarityInsight')}

)} {/* Notes Grid */}
{notes.map((note, index) => { const title = note.title || t('memoryEcho.comparison.untitled') const noteColor = getNoteColor(index) const titleColor = getTitleColor(index) return (
{ if (onOpenNote && note.id) { onOpenNote(note.id) onClose() } }} className={cn( "cursor-pointer border dark:border-zinc-700 rounded-lg p-4 transition-all hover:shadow-md", noteColor )} >

{title}

{note.content}

{t('memoryEcho.comparison.clickToView')}

) })}
{/* Footer - Feedback */}

{t('memoryEcho.comparison.helpfulQuestion')}

) }