import VideoCard from "../components/video/VideoCard"; import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import { getClips, deleteClip } from "../utils/api/clips"; import type { Clip } from "../utils/types"; const MyClips = () => { const [clips, setClips] = useState([]); const [error, setError] = useState(null); const navigate = useNavigate(); useEffect(() => { getClips() .then((data) => setClips(data.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()))) .catch((err) => setError(err)); }, []); const handleDelete = async (id: number) => { try { await deleteClip(id); setClips(prev => prev.filter(c => c.id !== id)); } catch (err) { setError(err instanceof Error ? err.message : "Failed to delete clip"); } }; return (

My Clips

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

No clips yet.

Upload your first clip to get started.

)} {error &&

{error.toString()}

}
); } export default MyClips;