Hook para paginação server-side.
npx @kobana/ui add use-pagination
import { usePagination } from "@/hooks/use-pagination"
const { page, perPage, setPage, setPerPage, offset } = usePagination({
defaultPage: 1,
defaultPerPage: 20,
})
| Opção | Tipo | Default | Descrição |
|---|
defaultPage | number | 1 | Página inicial |
defaultPerPage | number | 20 | Itens por página |
| Propriedade | Tipo | Descrição |
|---|
page | number | Página atual (1-indexed) |
perPage | number | Itens por página |
setPage | (page) => void | Muda a página |
setPerPage | (perPage) => void | Muda items/página (reseta page=1) |
offset | number | Offset calculado: (page - 1) * perPage |
const pagination = usePagination({ defaultPerPage: 10 })
const { data } = useQuery({
queryKey: ["charges", pagination.page, pagination.perPage],
queryFn: () => api.charges.list({
page: pagination.page,
per_page: pagination.perPage,
}),
})