diff --git a/web/src/pages/audiobooks/AudiobookLibrary.tsx b/web/src/pages/audiobooks/AudiobookLibrary.tsx new file mode 100644 index 00000000..5825604b --- /dev/null +++ b/web/src/pages/audiobooks/AudiobookLibrary.tsx @@ -0,0 +1,123 @@ +import { useState } from "react"; + +import ScrollToTopButton from "@/components/ScrollToTopButton"; +import { Skeleton } from "@/components/ui/skeleton"; +import ViewTransitionLink from "@/components/ViewTransitionLink"; +import { useAudiobookLibrary } from "@/hooks/audiobooks/useAudiobookLibrary"; + +const PAGE_SIZE = 60; + +const GRID_CLASSES = + "grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 lg:grid-cols-7 xl:grid-cols-8 gap-3"; + +export default function AudiobookLibrary() { + const [offset, setOffset] = useState(0); + const { data, isLoading, error } = useAudiobookLibrary({ limit: PAGE_SIZE, offset }); + + if (isLoading && !data) { + return ( +
audiobooks{" "}
+ and rescan.
+