import React from 'react'; import { OptimizationScores } from './OptimizationScores'; interface ScoreData { seo_score: number; readability_score: number; engagement_score: number; overall_score: number; } interface ScoreComparisonProps { before: ScoreData; after: ScoreData; className?: string; } export const ScoreComparison: React.FC = ({ before, after, className = '', }) => { const calculateImprovement = (before: number, after: number) => { const diff = after - before; const percent = before > 0 ? ((diff / before) * 100).toFixed(1) : '0.0'; return { diff, percent }; }; const overallImprovement = calculateImprovement(before.overall_score, after.overall_score); return (

Score Comparison

Overall Improvement: 0 ? 'text-green-600 dark:text-green-400' : overallImprovement.diff < 0 ? 'text-red-600 dark:text-red-400' : 'text-gray-600 dark:text-gray-400' }`} > {overallImprovement.diff > 0 ? '+' : ''} {overallImprovement.diff.toFixed(1)} ({overallImprovement.percent}%)
{/* Before Scores */}

Before

{/* After Scores */}

After

{/* Detailed Breakdown */}

Detailed Breakdown

{[ { label: 'SEO Score', before: before.seo_score, after: after.seo_score }, { label: 'Readability Score', before: before.readability_score, after: after.readability_score }, { label: 'Engagement Score', before: before.engagement_score, after: after.engagement_score }, { label: 'Overall Score', before: before.overall_score, after: after.overall_score }, ].map(({ label, before: beforeScore, after: afterScore }) => { const improvement = calculateImprovement(beforeScore, afterScore); return (
{label}
{beforeScore.toFixed(1)} 0 ? 'text-green-600 dark:text-green-400' : improvement.diff < 0 ? 'text-red-600 dark:text-red-400' : 'text-gray-600 dark:text-gray-400' }`} > {afterScore.toFixed(1)} 0 ? 'text-green-600 dark:text-green-400' : improvement.diff < 0 ? 'text-red-600 dark:text-red-400' : 'text-gray-500' }`} > ({improvement.diff > 0 ? '+' : ''} {improvement.diff.toFixed(1)})
); })}
); };