import { ChevronLeft, ChevronRight, Loader2 } from "lucide-react"; import { SAVED_KEYWORD_PAGE_SIZES } from "./savedKeywordsUtils"; export function SavedKeywordsPagination({ page, pageSize, totalCount, isLoading, onPageChange, onPageSizeChange, }: { page: number; pageSize: (typeof SAVED_KEYWORD_PAGE_SIZES)[number]; totalCount: number; isLoading: boolean; onPageChange: (page: number) => void; onPageSizeChange: ( pageSize: (typeof SAVED_KEYWORD_PAGE_SIZES)[number], ) => void; }) { const totalPages = Math.max(1, Math.ceil(totalCount / pageSize)); const start = totalCount === 0 ? 0 : (page - 1) * pageSize + 1; const end = Math.min(totalCount, page * pageSize); return (
{start.toLocaleString()}-{end.toLocaleString()} of{" "} {totalCount.toLocaleString()} {isLoading ? : null}
Page {page.toLocaleString()} of {totalPages.toLocaleString()}
); } function parsePageSize( value: string, ): (typeof SAVED_KEYWORD_PAGE_SIZES)[number] { const parsed = Number(value); return SAVED_KEYWORD_PAGE_SIZES.find((size) => size === parsed) ?? 50; }