UNPKG

data-paginate

Version:

`data-paginate` is a React hook for handling pagination with an array of data. It provides an easy way to paginate data with simple navigation functions.

34 lines (31 loc) 958 B
import { useState, useMemo } from 'react'; function usePagination(data, limit, initialPage = 1) { const [page, setPage] = useState(initialPage); const totalPages = useMemo(() => { return Math.ceil(data.length / limit); }, [data.length, limit]); const paginatedData = useMemo(() => { const start = (page - 1) * limit; const end = start + limit; return data.slice(start, end); }, [data, page, limit]); const nextPage = () => { setPage((prevPage) => Math.min(prevPage + 1, totalPages)); }; const prevPage = () => { setPage((prevPage) => Math.max(prevPage - 1, 1)); }; const goToPage = (pageNumber) => { const page = Math.max(1, Math.min(pageNumber, totalPages)); setPage(page); }; return { paginatedData, page, totalPages, nextPage, prevPage, goToPage, }; } export { usePagination as default };