tsx import React, { useCallback } from 'react' import { useAppStore } from '@/store/useAppStore' import { Copy, ArrowRight, CheckCircle } from 'lucide-react' /** * Component for side-by-side comparison of original and optimized prompts */ export function ComparisonView() { const { result, copiedStates, setCopiedState } = useAppStore() if (!result) return null /** * Handle copy to clipboard with feedback */ const handleCopy = useCallback(async (text: string, type: 'original' | 'optimized') => { try { await navigator.clipboard.writeText(text) setCopiedState(type, true) setTimeout(() => { setCopiedState(type, false) }, 2000) } catch (error) { console.error('Failed to copy text:', error) setCopiedState(type, true) setTimeout(() => { setCopiedState(type, false) }, 2000) } }, [setCopiedState]) /** * Calculate differences */ const originalWords = result.originalPrompt.split(/\s+/).length const optimizedWords = result.optimizedPrompt.split(/\s+/).length const wordsIncrease = optimizedWords - originalWords const wordsIncreasePercent = Math.round((wordsIncrease / originalWords) * 100) return (
{/* Header */}

Prompt-Vergleich

+{wordsIncrease} Wörter (+{wordsIncreasePercent}%)
Optimiert für {result.targetModel.replace('-', ' ')}
{/* Side-by-side comparison */}
{/* Original Prompt */}

Original

{result.originalPrompt.length} Zeichen, {originalWords} Wörter