"use client"; import { ChevronLeftIcon, ChevronRightIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon, } from "@radix-ui/react-icons"; import Link from "next/link"; import { usePathname, useSearchParams } from "next/navigation"; import { extractPaginationInfo } from "@/lib"; import { MetaDataProps } from "@/types"; interface DataTablePaginationProps { pageSizeOptions?: number[]; metadata?: MetaDataProps; } export function DataTablePagination({ metadata }: DataTablePaginationProps) { if (!metadata) return null; const pathname = usePathname(); const searchParams = useSearchParams(); const { currentPage, totalPages, totalEntries } = extractPaginationInfo(metadata); const createPageUrl = (pageNumber: number | string) => { const params = new URLSearchParams(searchParams); if (pageNumber === "...") return `${pathname}?${params.toString()}`; if (+pageNumber > totalPages) { return `${pathname}?${params.toString()}`; } params.set("page", pageNumber.toString()); return `${pathname}?${params.toString()}`; }; return (