"use client"; import Link from "next/link"; import { PaginationButton } from "./pagination-button"; import { Button } from "./ui/button"; import { usePathname, useSearchParams } from "next/navigation"; export const PaginationRow = (props: { pagesArray: number[] }) => { const searchParams = useSearchParams(); const pageParam = searchParams.get("page"); const pathname = usePathname(); const SELLER_PARAMS = searchParams.get("seller") ? `&seller=${searchParams.get("seller") ?? ""}` : ""; const okToApplyPageCommand = !isNaN(Number(pageParam)) && Number(pageParam) - 1 >= 1 && Number(pageParam) !== props.pagesArray.length && Number(pageParam) !== props.pagesArray.length - 1; return (
{!isNaN(Number(pageParam)) && Number(pageParam) - 1 >= 1 && ( )} {props.pagesArray.length <= 4 ? props.pagesArray.length > 1 && (
{props.pagesArray.map((_, i) => ( ))}
) : [ !!okToApplyPageCommand ? Number(pageParam) - 1 : 1, !!okToApplyPageCommand ? Number(pageParam) : 2, props.pagesArray.length - 1, props.pagesArray.length, ].map((item, i) => (
{item === props.pagesArray.length - 1 && (!!okToApplyPageCommand ? Number(pageParam) : 2) !== item - 1 &&
...
}
))} {!isNaN(Number(pageParam)) && Number(pageParam) + 1 <= props.pagesArray.length && props.pagesArray.length > 1 && ( 2 ? Number(pageParam) + 1 : 2 }${SELLER_PARAMS}`} > )}
); };