feat(getPageNumber - fixed and applied)
This commit is contained in:
@@ -35,6 +35,7 @@ import { formatDateToHumanReadable } from "@/utils/dateUtils";
|
|||||||
import ClaimViewModal from "./claim-view-modal";
|
import ClaimViewModal from "./claim-view-modal";
|
||||||
import ClaimEditModal from "./claim-edit-modal";
|
import ClaimEditModal from "./claim-edit-modal";
|
||||||
import { Claim, ClaimStatus, ClaimWithServiceLines } from "@repo/db/types";
|
import { Claim, ClaimStatus, ClaimWithServiceLines } from "@repo/db/types";
|
||||||
|
import { getPageNumbers } from "@/utils/pageNumberGenerator";
|
||||||
|
|
||||||
interface ClaimApiResponse {
|
interface ClaimApiResponse {
|
||||||
claims: ClaimWithServiceLines[];
|
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 (
|
return (
|
||||||
<div className="bg-white shadow rounded-lg overflow-hidden">
|
<div className="bg-white shadow rounded-lg overflow-hidden">
|
||||||
<div className="overflow-x-auto">
|
<div className="overflow-x-auto">
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ import {
|
|||||||
import EditPaymentModal from "./payment-edit-modal";
|
import EditPaymentModal from "./payment-edit-modal";
|
||||||
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
import { Avatar, AvatarFallback } from "@/components/ui/avatar";
|
||||||
import { ConfirmationDialog } from "../ui/confirmationDialog";
|
import { ConfirmationDialog } from "../ui/confirmationDialog";
|
||||||
|
import { getPageNumbers } from "@/utils/pageNumberGenerator";
|
||||||
|
|
||||||
interface PaymentApiResponse {
|
interface PaymentApiResponse {
|
||||||
payments: PaymentWithExtras[];
|
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 (
|
return (
|
||||||
<div className="bg-white shadow rounded-lg overflow-hidden">
|
<div className="bg-white shadow rounded-lg overflow-hidden">
|
||||||
<div className="overflow-x-auto">
|
<div className="overflow-x-auto">
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import {
|
|||||||
PaginationPrevious,
|
PaginationPrevious,
|
||||||
} from "@/components/ui/pagination";
|
} from "@/components/ui/pagination";
|
||||||
import DocumentsFilePreviewModal from "@/components/documents/file-preview-modal";
|
import DocumentsFilePreviewModal from "@/components/documents/file-preview-modal";
|
||||||
|
import { getPageNumbers } from "@/utils/pageNumberGenerator";
|
||||||
|
|
||||||
export default function DocumentsPage() {
|
export default function DocumentsPage() {
|
||||||
const [selectedPatient, setSelectedPatient] = useState<Patient | null>(null);
|
const [selectedPatient, setSelectedPatient] = useState<Patient | null>(null);
|
||||||
@@ -205,23 +206,6 @@ export default function DocumentsPage() {
|
|||||||
? Math.min(offset + limit, totalForExpandedGroup)
|
? Math.min(offset + limit, totalForExpandedGroup)
|
||||||
: 0;
|
: 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 (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="container mx-auto space-y-6">
|
<div className="container mx-auto space-y-6">
|
||||||
|
|||||||
@@ -5,16 +5,17 @@ export function getPageNumbers(current: number, total: number, maxButtons = 7) {
|
|||||||
return pages;
|
return pages;
|
||||||
}
|
}
|
||||||
|
|
||||||
const half = Math.floor(maxButtons / 2);
|
const delta = 2;
|
||||||
let start = Math.max(1, current - half);
|
const start = Math.max(2, current - delta);
|
||||||
let end = Math.min(total, current + half);
|
const end = Math.min(total - 1, current + delta);
|
||||||
|
|
||||||
if (start === 1) end = Math.min(total, maxButtons);
|
pages.push(1);
|
||||||
if (end === total) start = Math.max(1, total - maxButtons + 1);
|
if (start > 2) pages.push("...");
|
||||||
|
|
||||||
if (start > 1) pages.push(1, "...");
|
|
||||||
for (let i = start; i <= end; i++) pages.push(i);
|
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;
|
return pages;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user