顯示第 {(pagination.currentPage - 1) * pagination.limit + 1} - {Math.min(pagination.currentPage * pagination.limit, pagination.totalResults)} 筆,共 {pagination.totalResults} 筆
{/* Desktop Pagination */}
{Array.from({ length: pagination.totalPages }, (_, i) => i + 1).map((page) => (
))}
{/* Mobile Pagination */}
{(() => {
const maxVisiblePages = 3
const startPage = Math.max(1, pagination.currentPage - 1)
const endPage = Math.min(pagination.totalPages, startPage + maxVisiblePages - 1)
const pages = []
// 如果不在第一頁,顯示第一頁和省略號
if (startPage > 1) {
pages.push(
)
if (startPage > 2) {
pages.push(
...
)
}
}
// 顯示當前頁附近的頁碼
for (let i = startPage; i <= endPage; i++) {
pages.push(
)
}
// 如果不在最後一頁,顯示省略號和最後一頁
if (endPage < pagination.totalPages) {
if (endPage < pagination.totalPages - 1) {
pages.push(
...
)
}
pages.push(
)
}
return pages
})()}
)}
>
)}