import React from 'react'; import { createPortal } from 'react-dom'; import DOMPurify from 'dompurify'; import { X, Play, Clock, Calendar, BarChart2 } from 'lucide-react'; import { Episode } from '../services/episodeService'; interface EpisodeDetailsProps { episode: Episode | null; isOpen: boolean; onClose: () => void; onPlay: (episode: Episode) => void; } export default function EpisodeDetails({ episode, isOpen, onClose, onPlay }: EpisodeDetailsProps) { if (!episode) return null; const podcast = typeof episode.podcastId === 'object' ? episode.podcastId : null; const durationMinutes = Math.floor(episode.duration / 60); const pubDate = new Date(episode.pubDate).toLocaleDateString('fr-FR', { day: 'numeric', month: 'long', year: 'numeric' }); return createPortal( <> {/* Backdrop */}
{/* Slide-over Panel */}Durée
{durationMinutes} minutes
Publié le
{pubDate}
Progression
{Math.floor((episode.progress.position / episode.duration) * 100)}% écouté
Disponible sur le podcast
{podcast.author}