Skip to content
aq-ui
Back to HooksHook

Use Pagination

Open-code aq-ui React hook for Use Pagination.

Installation

pnpm dlx aq-ui@alpha add use-pagination

API reference

Client module

Import the parts you need, then jump to an export for its contract.

View full source

Quick start

"use client"

import { usePagination } from "@/hooks/use-pagination"

createPaginationRange

functionSource L55

Public function export from Use Pagination.

function createPaginationRange(page: number, pageCount: number, siblingCount = 1, boundaryCount = 1): PaginationToken[]
Returns
PaginationToken[]

Parameters

NameTypeDefault
pagenumber—
pageCountnumber—
siblingCount?—1
boundaryCount?—1

PaginationControls

interfaceSource L25

Type contract for PaginationControls.

interface PaginationControls

Members

NameType
pagenumber
pageSizenumber
pageCountnumber
totalItemsnumber
startIndexnumber
endIndexnumber
pagesPaginationToken[]
itemsPaginationItem[]
canPreviousboolean
canNextboolean
setPage(page: number) => void
setPageSize(pageSize: number) => void
first() => void
previous() => void
next() => void
last() => void

PaginationItem

typeSource L9

Type contract for PaginationItem.

type PaginationItem = { … } | { … }

Members

NameType
type"page"
pagenumber
keystring
selectedboolean

PaginationToken

typeSource L7

Type contract for PaginationToken.

type PaginationToken = number | "ellipsis"

usePagination

functionSource L99

Open-code aq-ui React hook for Use Pagination.

function usePagination({ totalItems, page, defaultPage = 1, pageSize, defaultPageSize = 10, onPageChange, onPageSizeChange, siblingCount = 1, boundaryCount = 1, }: UsePaginationOptions): PaginationControls
Returns
PaginationControls

Parameters

NameType
optionsUsePaginationOptions

UsePaginationOptions

interfaceSource L13

Type contract for UsePaginationOptions.

interface UsePaginationOptions

Members

NameTypeDefault
totalItemsnumber—
page?number—
defaultPage?number1
pageSize?number—
defaultPageSize?number10
onPageChange?(page: number) => void—
onPageSizeChange?(pageSize: number) => void—
siblingCount?number1
boundaryCount?number1

Registry dependencies

use-controllable-state

Files

  • hooks/use-pagination.ts

Source