From 103142b2d350ae0fac4c8b36d1ae12e40fb82918 Mon Sep 17 00:00:00 2001 From: Potenz Date: Thu, 30 Oct 2025 21:12:50 +0530 Subject: [PATCH] feat(getPageNumber - fixed and applied) --- .../components/claims/claims-recent-table.tsx | 20 +------------------ .../payments/payments-recent-table.tsx | 20 +------------------ apps/Frontend/src/pages/documents-page.tsx | 18 +---------------- .../Frontend/src/utils/pageNumberGenerator.ts | 15 +++++++------- 4 files changed, 11 insertions(+), 62 deletions(-) diff --git a/apps/Frontend/src/components/claims/claims-recent-table.tsx b/apps/Frontend/src/components/claims/claims-recent-table.tsx index 2e49bdb..f1b8496 100644 --- a/apps/Frontend/src/components/claims/claims-recent-table.tsx +++ b/apps/Frontend/src/components/claims/claims-recent-table.tsx @@ -35,6 +35,7 @@ import { formatDateToHumanReadable } from "@/utils/dateUtils"; import ClaimViewModal from "./claim-view-modal"; import ClaimEditModal from "./claim-edit-modal"; import { Claim, ClaimStatus, ClaimWithServiceLines } from "@repo/db/types"; +import { getPageNumbers } from "@/utils/pageNumberGenerator"; interface ClaimApiResponse { claims: ClaimWithServiceLines[]; @@ -294,25 +295,6 @@ export default function ClaimsRecentTable({ ); }; - function getPageNumbers(current: number, total: number): (number | "...")[] { - const delta = 2; - const range: (number | "...")[] = []; - const left = Math.max(2, current - delta); - const right = Math.min(total - 1, current + delta); - - range.push(1); - if (left > 2) range.push("..."); - - for (let i = left; i <= right; i++) { - range.push(i); - } - - if (right < total - 1) range.push("..."); - if (total > 1) range.push(total); - - return range; - } - return (
diff --git a/apps/Frontend/src/components/payments/payments-recent-table.tsx b/apps/Frontend/src/components/payments/payments-recent-table.tsx index 46190c8..9ce1e00 100644 --- a/apps/Frontend/src/components/payments/payments-recent-table.tsx +++ b/apps/Frontend/src/components/payments/payments-recent-table.tsx @@ -43,6 +43,7 @@ import { import EditPaymentModal from "./payment-edit-modal"; import { Avatar, AvatarFallback } from "@/components/ui/avatar"; import { ConfirmationDialog } from "../ui/confirmationDialog"; +import { getPageNumbers } from "@/utils/pageNumberGenerator"; interface PaymentApiResponse { payments: PaymentWithExtras[]; @@ -474,25 +475,6 @@ export default function PaymentsRecentTable({ } }; - function getPageNumbers(current: number, total: number): (number | "...")[] { - const delta = 2; - const range: (number | "...")[] = []; - const left = Math.max(2, current - delta); - const right = Math.min(total - 1, current + delta); - - range.push(1); - if (left > 2) range.push("..."); - - for (let i = left; i <= right; i++) { - range.push(i); - } - - if (right < total - 1) range.push("..."); - if (total > 1) range.push(total); - - return range; - } - return (
diff --git a/apps/Frontend/src/pages/documents-page.tsx b/apps/Frontend/src/pages/documents-page.tsx index d91181d..93343ef 100644 --- a/apps/Frontend/src/pages/documents-page.tsx +++ b/apps/Frontend/src/pages/documents-page.tsx @@ -23,6 +23,7 @@ import { PaginationPrevious, } from "@/components/ui/pagination"; import DocumentsFilePreviewModal from "@/components/documents/file-preview-modal"; +import { getPageNumbers } from "@/utils/pageNumberGenerator"; export default function DocumentsPage() { const [selectedPatient, setSelectedPatient] = useState(null); @@ -205,23 +206,6 @@ export default function DocumentsPage() { ? Math.min(offset + limit, totalForExpandedGroup) : 0; - function getPageNumbers(current: number, total: number) { - const delta = 2; - const range: (number | "...")[] = []; - for ( - let i = Math.max(2, current - delta); - i <= Math.min(total - 1, current + delta); - i++ - ) { - range.push(i); - } - if (current - delta > 2) range.unshift("..."); - if (current + delta < total - 1) range.push("..."); - range.unshift(1); - if (total > 1) range.push(total); - return range; - } - return (
diff --git a/apps/Frontend/src/utils/pageNumberGenerator.ts b/apps/Frontend/src/utils/pageNumberGenerator.ts index 0309e15..524f5de 100644 --- a/apps/Frontend/src/utils/pageNumberGenerator.ts +++ b/apps/Frontend/src/utils/pageNumberGenerator.ts @@ -5,16 +5,17 @@ export function getPageNumbers(current: number, total: number, maxButtons = 7) { return pages; } - const half = Math.floor(maxButtons / 2); - let start = Math.max(1, current - half); - let end = Math.min(total, current + half); + const delta = 2; + const start = Math.max(2, current - delta); + const end = Math.min(total - 1, current + delta); - if (start === 1) end = Math.min(total, maxButtons); - if (end === total) start = Math.max(1, total - maxButtons + 1); + pages.push(1); + if (start > 2) pages.push("..."); - if (start > 1) pages.push(1, "..."); for (let i = start; i <= end; i++) pages.push(i); - if (end < total) pages.push("...", total); + + if (end < total - 1) pages.push("..."); + if (total > 1) pages.push(total); return pages; }