"use client"; import { GradientSpinner } from "@/components/ui/GradientSpinner"; import { useImageColor } from "@/hooks/useImageColor"; // Hooks import { usePodcastData } from "@/features/podcast/hooks/usePodcastData"; import { usePodcastActions } from "@/features/podcast/hooks/usePodcastActions"; // Components import { PodcastHero } from "@/features/podcast/components/PodcastHero"; import { PodcastActionBar } from "@/features/podcast/components/PodcastActionBar"; import { ContinueListening } from "@/features/podcast/components/ContinueListening"; import { EpisodeList } from "@/features/podcast/components/EpisodeList"; import { PreviewEpisodes } from "@/features/podcast/components/PreviewEpisodes"; import { SimilarPodcasts } from "@/features/podcast/components/SimilarPodcasts"; export default function PodcastDetailPage() { // Data hook const { podcastId, podcast, previewData, displayData, isLoading, heroImage, similarPodcasts, sortOrder, setSortOrder, inProgressEpisodes, sortedEpisodes, } = usePodcastData(); // Extract colors from the proxied image URL const { colors } = useImageColor(heroImage); // Action hooks const { isSubscribing, showDeleteConfirm, setShowDeleteConfirm, handleSubscribe, handleRemovePodcast, handlePlayEpisode, handlePlayPauseEpisode, isEpisodePlaying, isPlaying, } = usePodcastActions(podcastId); // Loading state if (isLoading) { return (
Podcast not found