'use client'; import { useMemo } from 'react'; import { type ConversionResult } from '@/lib/units'; import { formatNumber, cn } from '@/lib/utils'; interface VisualComparisonProps { conversions: ConversionResult[]; color: string; } export default function VisualComparison({ conversions, color, }: VisualComparisonProps) { // Calculate percentages for visual bars const withPercentages = useMemo(() => { if (conversions.length === 0) return []; const maxValue = Math.max(...conversions.map(c => Math.abs(c.value))); if (maxValue === 0) return conversions.map(c => ({ ...c, percentage: 0 })); return conversions.map(c => ({ ...c, percentage: (Math.abs(c.value) / maxValue) * 100, })); }, [conversions]); if (conversions.length === 0) { return (
Enter a value to see conversions
); } return (
{withPercentages.map(item => (
{item.unitInfo.plural} {formatNumber(item.value)} {item.unit}
))}
); }