nextjs-ssr-paginator
Version:
NextJS 13 Server Side Rendered Paginator
35 lines (30 loc) • 859 B
text/typescript
export const perPageDefault = 10
export interface PaginationProps {
pagination: {
totalRecords: number
totalPages: number
perPage: number
currentPage: number
nextPage: number | null
}
}
export function prismaPaginationHelper(currentPage: number, perPage = perPageDefault) {
const offset = (currentPage - 1) * perPage
return {
skip: offset,
take: perPage,
}
}
export function paginationHelper(totalRecords: number, currentPage: number, perPage = perPageDefault): PaginationProps {
const totalPages = Math.ceil(totalRecords / perPage);
const nextPage = currentPage < totalPages ? currentPage + 1 : null
return {
pagination: {
currentPage,
nextPage,
perPage,
totalRecords,
totalPages
}
}
}