diff --git a/src/app/(auth-state)/admin/photos/page.tsx b/src/app/(auth-state)/admin/photos/page.tsx index 6ed78ba3..255570d9 100644 --- a/src/app/(auth-state)/admin/photos/page.tsx +++ b/src/app/(auth-state)/admin/photos/page.tsx @@ -17,16 +17,27 @@ import { getBlobPhotoUrls, getBlobUploadUrls, } from '@/services/blob'; -import { getPhotos } from '@/services/postgres'; +import { getPhotos, getPhotosCount } from '@/services/postgres'; import { routeForPhoto } from '@/site/routes'; -import { titleForPhoto } from '@/photo'; +import { getPhotosLimitForQuery, titleForPhoto } from '@/photo'; +import MorePhotos from '@/components/MorePhotos'; export const runtime = 'edge'; const DEBUG_PHOTO_BLOBS = false; -export default async function AdminPage() { - const photos = await getPhotos('createdAt'); +export default async function AdminPage({ + searchParams, +}: { + searchParams: { next: string }; +}) { + const { offset, limit } = getPhotosLimitForQuery(searchParams.next); + + const photos = await getPhotos('createdAt', limit); + + const count = await getPhotosCount(); + + const showMorePhotos = count > photos.length; const blobUploadUrls = await getBlobUploadUrls(); const blobPhotoUrls = DEBUG_PHOTO_BLOBS @@ -49,55 +60,59 @@ export default async function AdminPage() { blobUrls={blobPhotoUrls} label={`Photos Files (${blobPhotoUrls.length})`} />} - - {photos.map(photo => - - -
- - {photo.title || - - Untitled - } - {photo.priorityOrder !== null && - - {photo.priorityOrder} - } - -
- {photo.takenAtNaive} +
+ + {photos.map(photo => + + +
+ + {photo.title || + + Untitled + } + {photo.priorityOrder !== null && + + {photo.priorityOrder} + } + +
+ {photo.takenAtNaive} +
-
- - - - - - - )} - + + + + + + + )} + + {showMorePhotos && + } +
} />