"use client"; import { Mic2 } from "lucide-react"; import Image from "next/image"; import { ReactNode } from "react"; interface PodcastHeroProps { title: string; author: string; description?: string; genres?: string[]; heroImage: string | null; colors: any; episodeCount: number; inProgressCount: number; children?: ReactNode; } export function PodcastHero({ title, author, description, genres, heroImage, colors, episodeCount, inProgressCount, children, }: PodcastHeroProps) { return (
{/* Background with VibrantJS gradient */} {heroImage ? (
{title}
) : (
)} {/* Compact Hero Content - Full Width */}
{/* Cover Art - Circular for podcasts */}
{heroImage ? ( {title} ) : (
)}
{/* Info - Bottom Aligned */}

Podcast

{title}

{/* Description - truncated */} {description && (

{description.replace(/<[^>]*>/g, "").substring(0, 150)}...

)} {/* Metadata row */}
{author} {episodeCount} {episodeCount === 1 ? "episode" : "episodes"} {inProgressCount > 0 && ( <> {inProgressCount} in progress )}
{/* Genre tags - compact */} {genres && genres.length > 0 && (
{genres.slice(0, 4).map((genre: string) => ( {genre} ))}
)}
{/* Action Bar - Full Width */} {children && (
{children}
)}
); }