• English
  • Pagination

    Browse large datasets one page at a time.

    Basic usage

    Live previewBasic usage

    Current page: 1; page size: 10 items.

    basic.tsx
    import { Pagination } from '@sudden3/leaf-ui';
    import { useState } from 'react';
    export function PaginationBasic() {
      const [current, setCurrent] = useState(1);
      const [pageSize, setPageSize] = useState(10);
      return (
        <div className="leaf-demo-stack leaf-demo-stack--wide">
          <Pagination
            total={240}
            current={current}
            pageSize={pageSize}
            showSizeChanger
            showQuickJumper
            showTotal={(total, [start, end]) => `${start}–${end} / ${total} items`}
            onChange={(page, size) => {
              setCurrent(page);
              setPageSize(size);
            }}
          />
          <Pagination total={50} size="sm" />
          <Pagination total={240} simple disabled />
          <p className="leaf-demo-note">
            Current page: {current}; page size: {pageSize} items.
          </p>
        </div>
      );
    }
    

    Pagination API

    PropTypeDefaultDescription
    totalnumberRequiredTotal number of items
    current / defaultCurrentnumber1Controlled / initial page
    pageSize / defaultPageSizenumber10Controlled / initial page size
    onChange(page: number, pageSize: number) => void—Page or page size changes
    showSizeChangerbooleanfalseShow page size selector
    pageSizeOptionsreadonly number[][10, 20, 50, 100]Available page sizes
    showQuickJumperbooleanfalseAllow typing a page and pressing Enter
    showTotal(total: number, range: readonly [number, number]) => ReactNode—Custom total and visible range description
    simplebooleanfalseUse compact page display
    disabled / hideOnSinglePagebooleanfalseDisable / hide when only one page exists
    size'sm' | 'md' | 'lg''md'Control size

    Types

    Import the component props and item types when preparing your own values.

    import type { PaginationProps } from '@sudden3/leaf-ui';

    Usage notes

    Pages start at 1. Load data in response to onChange. Page size changes preserve the current item position where possible, and out of range pages are bounded automatically.