Closed1
即席ページネーションパラメーター作成メソッド
prev, next, itemsを返す最低限のメソッド
type Params = {
pathPrefix: string
totalPage: number
currentPage?: number
}
/** ページネーションパラメーターを作成 */
export const createPaginationParams = ({ pathPrefix, totalPage, currentPage = 1 }: Params) => {
const prev = () => {
if (currentPage === 1) return null
if (2 < currentPage) `${pathPrefix}/page/${currentPage - 1}`
return `${pathPrefix}`
}
const next = () => {
if (currentPage >= totalPage) return null
return `${pathPrefix}/page/${currentPage + 1}`
}
const items = () => {
return [...new Array(totalPage)].map((_, i) => {
const pageNum = i + 1
return {
pageNum,
path: pageNum > 1 ? `${pathPrefix}/page/${pageNum}` : `${pathPrefix}`
}
})
}
return {
prev: prev(),
next: next(),
items: items()
}
}
このスクラップは2021/10/12にクローズされました