Files
convert-ui/app/page.tsx
Sebastian Krüger cbaa4361cd feat: add conversion history view with real-time updates
Features:
- Created ConversionHistory component showing recent conversions
- Displays input/output formats, file sizes, and timestamps
- Relative time display (e.g., "5 minutes ago", "2 hours ago")
- Clear all history functionality with confirmation
- Individual history item removal
- Real-time updates when new conversions complete
- Custom event system for same-page updates
- Storage event listener for cross-tab synchronization
- Empty state with helpful messaging
- Clean, organized card-based layout
- Responsive design with proper spacing

Technical improvements:
- Enhanced history storage to dispatch custom events
- History component auto-refreshes on new conversions
- Maintains up to 10 most recent conversions
- Integrated seamlessly into main page layout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 13:18:02 +01:00

74 lines
2.4 KiB
TypeScript

'use client';
import { FileConverter } from '@/components/converter/FileConverter';
import { ConversionHistory } from '@/components/converter/ConversionHistory';
import { ThemeToggle } from '@/components/layout/ThemeToggle';
import { ToastProvider } from '@/components/ui/Toast';
export default function Home() {
return (
<ToastProvider>
<div className="min-h-screen bg-background">
{/* Header */}
<header className="border-b border-border">
<div className="container mx-auto px-4 py-4 flex items-center justify-between">
<div>
<h1 className="text-2xl font-bold text-foreground">Convert UI</h1>
<p className="text-sm text-muted-foreground">
File conversion in your browser
</p>
</div>
<ThemeToggle />
</div>
</header>
{/* Main content */}
<main className="container mx-auto px-4 py-8 md:py-16">
<div className="space-y-8">
<FileConverter />
<ConversionHistory />
</div>
</main>
{/* Footer */}
<footer className="border-t border-border mt-16">
<div className="container mx-auto px-4 py-6 text-center text-sm text-muted-foreground">
<p>
Powered by{' '}
<a
href="https://github.com/ffmpegwasm/ffmpeg.wasm"
target="_blank"
rel="noopener noreferrer"
className="text-primary hover:underline"
>
FFmpeg.wasm
</a>
,{' '}
<a
href="https://github.com/dlemstra/magick-wasm"
target="_blank"
rel="noopener noreferrer"
className="text-primary hover:underline"
>
ImageMagick WASM
</a>
{' '}&{' '}
<a
href="https://nextjs.org"
target="_blank"
rel="noopener noreferrer"
className="text-primary hover:underline"
>
Next.js 16
</a>
</p>
<p className="mt-2">
All conversions happen locally in your browser. No files are uploaded to any server.
</p>
</div>
</footer>
</div>
</ToastProvider>
);
}