tsx import React, { useCallback } from 'react' import { useAppStore } from '@/store/useAppStore' import { Copy, CheckCircle, Clock, Hash, Sparkles } from 'lucide-react' import { ANIMATION_DURATIONS } from '@/utils/constants' /** * Component displaying the optimized prompt result */ export function OptimizationResult() { const { result, setCopiedState, copiedStates } = 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) // Reset copied state after animation setTimeout(() => { setCopiedState(type, false) }, ANIMATION_DURATIONS.COPY_FEEDBACK) } catch (error) { console.error('Failed to copy text:', error) // Fallback for older browsers const textArea = document.createElement('textarea') textArea.value = text document.body.appendChild(textArea) textArea.select() document.execCommand('copy') document.body.removeChild(textArea) setCopiedState(type, true) setTimeout(() => { setCopiedState(type, false) }, ANIMATION_DURATIONS.COPY_FEEDBACK) } }, [setCopiedState]) /** * Calculate improvement metrics */ const improvementMetrics = { lengthIncrease: result.optimizedPrompt.length - result.originalPrompt.length, lengthIncreasePercent: Math.round(((result.optimizedPrompt.length - result.originalPrompt.length) / result.originalPrompt.length) * 100), wordIncrease: result.optimizedPrompt.split(/\s+/).length - result.originalPrompt.split(/\s+/).length } return (
{/* Result Header */}

Optimierung abgeschlossen

Für {result.targetModel.replace('-', ' ')} optimiert in {result.executionTime}ms

{/* Quick Stats */}
+{improvementMetrics.lengthIncrease}
Zeichen
+{improvementMetrics.wordIncrease}
Wörter
{improvementMetrics.lengthIncreasePercent}%
Erweiterung
{/* Performance Info */}
{result.executionTime}ms
{result.tokenEstimate && (
~{result.tokenEstimate} Tokens
)}
Optimiert
{/* Improvements List */}

Angewendete Verbesserungen

{/* Optimized Prompt Output */}

Optimierter Prompt