import { useEffect, useState } from 'react' import toast from 'react-hot-toast' import { playbackAPI } from '../api/playback' import { MediaCard } from '../components/MediaCard' import type { Media } from '../types' export function FavouritesPage() { const [items, setItems] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState('') useEffect(() => { playbackAPI .listFavourites() .then((data) => setItems(data ?? [])) .catch((err) => { const msg = (err as { response?: { data?: { error?: string } } })?.response?.data?.error ?? '加载收藏失败' setError(msg) toast.error(msg) }) .finally(() => setLoading(false)) }, []) const isEmpty = !loading && !error && items.length === 0 return (

我的收藏

{loading && (
加载中…
)} {error && (
{error}
)} {isEmpty && (

还没有任何收藏

在媒体库或详情页点击「加入收藏」即可添加喜欢的内容

)} {items.length > 0 && (
{items.map((m) => ( ))}
)}
) }