import { useNavigate } from 'react-router-dom' import { motion } from 'framer-motion' import { ListMusic } from '../lib/icons' import { useLibraryItems } from '../hooks/use-jellyfin' import PosterCard from '../components/ui/PosterCard' import { usePosterGridClasses } from '../lib/density' export default function PlaylistsPage() { const navigate = useNavigate() const gridCls = usePosterGridClasses() const { data, isLoading } = useLibraryItems(undefined, { includeItemTypes: ['Playlist'], sortBy: ['SortName'], sortOrder: ['Ascending'], limit: 200, }) const items = data?.Items || [] return (
Library

Playlists

{items.length > 0 && ( {items.length.toLocaleString()} {items.length === 1 ? 'playlist' : 'playlists'} )}
{isLoading ? ( ) : items.length === 0 ? ( ) : (
{items.map((item, i) => ( item.Id && navigate(`/item/${item.Id}`)} /> ))}
)}
) } function EmptyState() { return (

No playlists yet

Create a playlist on your Jellyfin server and it'll show up here.

) } function SkeletonGrid() { const gridCls = usePosterGridClasses() return (
{Array.from({ length: 12 }).map((_, i) => (
))}
) }