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 === "..." ? (
+ …
+ ) : (
+
+ )
+ );
+ })()}