"use client"; import { LibraryItemCard } from "./library-item-card"; import { ScheduleFromLibraryDialog } from "./schedule-from-library-dialog"; import { AddToBlockDialog } from "./add-to-block-dialog"; import { Button } from "@/components/ui/button"; import type { LibraryItemFull } from "@/lib/types"; interface Props { items: LibraryItemFull[]; total: number; page: number; pageSize: number; isLoading: boolean; selected: Set; onToggleSelect: (id: string) => void; onPageChange: (page: number) => void; selectedItems: LibraryItemFull[]; } export function LibraryGrid({ items, total, page, pageSize, isLoading, selected, onToggleSelect, onPageChange, selectedItems, }: Props) { const totalPages = Math.ceil(total / pageSize); return (
{isLoading ? (

Loading…

) : items.length === 0 ? (

No items found. Run a library sync to populate the library.

) : (
{items.map(item => ( onToggleSelect(item.id)} /> ))}
)}
{totalPages > 1 && (

{total.toLocaleString()} items total

{page + 1} / {totalPages}
)} {selected.size > 0 && (
{selected.size} selected
)}
); }