import { useParams } from "react-router-dom"; import Navbar from "../components/Navbar"; import { useEffect, useState } from "react"; import { getPlaylistById, deletePlaylist, deleteVideo } from "../services/playlist.service.js"; import VideoCard from "../components/VideoCard.jsx"; import VerificationModal from "../modals/VerificationModal.jsx"; import { useNavigate } from "react-router-dom"; export default function Playlist() { const { id } = useParams(); const navigate = useNavigate(); const [alerts, setAlerts] = useState([]); const [playlist, setPlaylist] = useState(null); const [isDeletePlaylistModalOpen, setIsDeletePlaylistModalOpen] = useState(false); const fetchPlaylistDetails = async () => { const token = localStorage.getItem("token"); const data = await getPlaylistById(id, token, addAlert); setPlaylist(data); } useEffect(() => { fetchPlaylistDetails(); }, [id]); const addAlert = (type, message) => { const newAlert = { type, message, id: Date.now() }; // Add unique ID setAlerts([...alerts, newAlert]); }; const onCloseAlert = (alertToRemove) => { setAlerts(alerts.filter(alert => alert !== alertToRemove)); }; const onDeletePlaylist = async () => { const token = localStorage.getItem("token"); await deletePlaylist(id, token, addAlert); setIsDeletePlaylistModalOpen(false); navigate("/profile"); } const onDeleteVideo = async (videoId) => { const token = localStorage.getItem("token"); await deleteVideo(id, videoId, token, addAlert); fetchPlaylistDetails(); } return (

{playlist && playlist.name}

{/* CONTROLS */}
{ playlist && playlist.videos && playlist.videos.length > 0 ? playlist.videos.map(video => ( )) : (

Aucun vidéo trouvée dans cette playlist.

) }
onDeletePlaylist()} onCancel={() => setIsDeletePlaylistModalOpen(false)} isOpen={isDeletePlaylistModalOpen} />
); }