mirror of
https://github.com/jorgev259/soc_site-astro.git
synced 2025-06-29 07:57:41 +00:00
This commit is contained in:
parent
91a91cb6a3
commit
491d72bd3c
7 changed files with 122 additions and 45 deletions
28
src/pages/anim/latest/[...page].astro
Normal file
28
src/pages/anim/latest/[...page].astro
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
import prismaClient from 'utils/prisma-client'
|
||||
import * as m from 'paraglide/messages'
|
||||
import { AlbumStatus } from '@prisma/client'
|
||||
|
||||
import PaginatedAlbumList from 'layouts/PaginatedAlbumList.astro'
|
||||
|
||||
const page = Math.min(1, parseInt(Astro.params.page ?? '1'))
|
||||
const take = 40
|
||||
const limitMD = 12
|
||||
const limitXS = 5
|
||||
|
||||
const albums = await prismaClient.albums.findMany({
|
||||
where: { status: AlbumStatus.SHOW, categories: { some: { categoryName: 'Animation' } } },
|
||||
select: { id: true, title: true },
|
||||
take,
|
||||
skip: take * (page - 1),
|
||||
orderBy: [{ releaseDate: 'desc' }, { publishedAt: 'desc' }, { createdAt: 'desc' }]
|
||||
})
|
||||
const count = await prismaClient.albums.count({ where: { status: AlbumStatus.SHOW } })
|
||||
|
||||
const fullPageList = [...Array(Math.ceil(count / take))].map((v, i) => i + 1)
|
||||
const listProps = { fullPageList, page, albums, limitMD, limitXS }
|
||||
---
|
||||
|
||||
<PaginatedAlbumList {...listProps}>
|
||||
{m.latestAnimReleases()}
|
||||
</PaginatedAlbumList>
|
||||
Loading…
Add table
Add a link
Reference in a new issue