import { useEffect, useState } from 'react' import { GalleryHorizontalEnd } from 'lucide-react' import { mediaAPI } from '../api/library' import { MediaCard } from '../components/MediaCard' import type { Media } from '../types' // PosterWallPage shows a dense poster grid of all media across every // library — a visual "poster wall" that matches the original MediaStation's // PosterWallView.vue. Loads the first 200 items sorted by rating. export function PosterWallPage() { const [items, setItems] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { mediaAPI .search('', 200) .then((d) => setItems(d.items)) .finally(() => setLoading(false)) }, []) return (

海报墙

全部媒体的海报展示(最多 200 项)。

{loading &&

加载中…

} {!loading && items.length === 0 && (

暂无媒体。请先添加媒体库并扫描。

)}
{items.map((m) => ( ))}
) }