import { Disc, Sparkles, CheckCircle, Shield, Zap, Tv, HardDrive } from 'lucide-react' import { RadialProgress } from './ui/RadialProgress' import { TypeBadge, StatusBadge } from './ui/Badge' import { Button } from './ui/Button' interface JobMeta { year?: number overview?: string poster_path?: string genres?: string[] runtime?: number type?: string source?: string } interface Job { id: string type: 'cd' | 'dvd' | 'bluray' | 'uhd' status: 'pending' | 'processing' | 'transcoding' | 'canceling' | 'completed' | 'failed' device: string startTime: string endTime?: string progress: number title?: string can_retry?: boolean meta?: JobMeta | null } function posterUrl(meta?: JobMeta | null): string | null { const p = meta?.poster_path if (!p) return null return p.startsWith('http') ? p : `https://image.tmdb.org/t/p/w500${p}` } interface HeroCinemaBannerProps { aktiverJob?: Job | null completedJobs?: Job[] onDetailClick?: (jobId: string) => void onCancelClick?: (jobId: string) => void } export function HeroCinemaBanner({ aktiverJob, completedJobs = [], onDetailClick, onCancelClick, }: HeroCinemaBannerProps) { // Fall 1: Aktiver Job (Rippt oder Komprimiert live) if (aktiverJob) { const isTranscoding = aktiverJob.status === 'transcoding' const statusText = isTranscoding ? 'HandBrake Kompression' : 'MakeMKV Extraktion' const poster = posterUrl(aktiverJob.meta) return (
Laufwerk: {aktiverJob.device} · {statusText}
Lege eine Disc ein — Rippy rippt sofort los.
Jellyfin, Plex & Kodi kompatibel.
Alle Tonspuren & Subtitles erhalten.