'use client'; import { useState, useEffect } from 'react'; import { History, Trash2, ArrowRight } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { getHistory, clearHistory, type ConversionRecord, } from '@/lib/storage'; import { getRelativeTime, formatNumber } from '@/lib/utils'; import { formatMeasureName } from '@/lib/units'; interface ConversionHistoryProps { onSelectConversion?: (record: ConversionRecord) => void; } export default function ConversionHistory({ onSelectConversion, }: ConversionHistoryProps) { const [history, setHistory] = useState([]); const [isOpen, setIsOpen] = useState(false); useEffect(() => { loadHistory(); // Listen for storage changes const handleStorageChange = () => { loadHistory(); }; window.addEventListener('storage', handleStorageChange); // Also listen for custom event from same window window.addEventListener('historyUpdated', handleStorageChange); return () => { window.removeEventListener('storage', handleStorageChange); window.removeEventListener('historyUpdated', handleStorageChange); }; }, []); const loadHistory = () => { setHistory(getHistory()); }; const handleClearHistory = () => { if (confirm('Clear all conversion history?')) { clearHistory(); loadHistory(); } }; if (history.length === 0) { return null; } return (
Recent Conversions
{history.length > 0 && ( )}
{isOpen && (
{history.map((record) => ( ))}
)}
); }