diff --git a/web/app/adopt/page.js b/web/app/adopt/page.js index 6c2b41aa..3a17654e 100644 --- a/web/app/adopt/page.js +++ b/web/app/adopt/page.js @@ -74,7 +74,7 @@ export default function AdoptPage() { [pets] ); - const ITEMS_PER_PAGE = 20; + const ITEMS_PER_PAGE = 24; const [currentPage, setCurrentPage] = useState(0); const filteredPets = useMemo( @@ -192,15 +192,42 @@ export default function AdoptPage() {
- Page {currentPage + 1} of {totalPages} + {(() => { + const pages = []; + const delta = 2; + const left = Math.max(0, currentPage - delta); + const right = Math.min(totalPages - 1, currentPage + delta); + if (left > 0) { + pages.push(0); + if (left > 1) pages.push("..."); + } + for (let i = left; i <= right; i++) pages.push(i); + if (right < totalPages - 1) { + if (right < totalPages - 2) pages.push("..."); + pages.push(totalPages - 1); + } + return pages.map((p, i) => + p === "..." ? ( + + ) : ( + + ) + ); + })()}