import { CaretLeft } from "@phosphor-icons/react/dist/ssr/CaretLeft"; import { CaretRight } from "@phosphor-icons/react/dist/ssr/CaretRight"; import clsx from "clsx"; import type { ComponentProps } from "react"; import { useMemo, useCallback } from "react"; import type { Link } from "react-aria-components"; import styles from "./index.module.scss"; import type { Props as ButtonProps } from "../Button/index.jsx"; import { Button } from "../Button/index.jsx"; import buttonStyles from "../Button/index.module.scss"; import { Select } from "../Select/index.jsx"; import { Toolbar } from "../unstyled/Toolbar/index.jsx"; type Props = { numPages: number; currentPage: number; onPageChange: (newPage: number) => void; pageSize: number; pageSizeOptions: number[]; onPageSizeChange: (newPageSize: number) => void; mkPageLink?: ((page: number) => string) | undefined; className?: string | undefined; }; export const Paginator = ({ numPages, currentPage, pageSize, pageSizeOptions, onPageChange, onPageSizeChange, mkPageLink, className, }: Props) => (
{numPages > 1 && ( )}
); type PageSizeSelectProps = { pageSize: number; pageSizeOptions: number[]; onPageSizeChange: (newPageSize: number) => void; }; const PageSizeSelect = ({ pageSize, onPageSizeChange, pageSizeOptions, }: PageSizeSelectProps) => (