import VideoCard from "../components/video/VideoCard"; import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import { getVods, deleteVod } from "../utils/endpoints"; import type { Vod } from "../utils/types"; const MyVods = () => { const [vods, setVods] = useState([]); const [error, setError] = useState(null); const navigate = useNavigate(); useEffect(() => { getVods() .then((data) => setVods(data.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()))) .catch((err) => setError(err instanceof Error ? err.message : "Failed to load vods")); }, []); const handleDelete = async (id: number) => { try { await deleteVod(id); setVods(prev => prev.filter(v => v.id !== id)); } catch (err) { setError(err instanceof Error ? err.message : "Failed to delete vod"); } }; return (

My VoDs

{vods.map((vod) => ( navigate(`/vods/${vod.id}/edit`)} onDelete={() => handleDelete(vod.id)} /> ))}
{vods.length === 0 && !error && (

No VoDs yet.

Your stream recordings will appear here.

)} {error &&

{error}

}
); }; export default MyVods;