@premieroctet/next-admin
Version:
Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje
33 lines (32 loc) • 955 B
JavaScript
import { useMemo, useState } from "react";
const useLocalPagination_useLocalPagination = (data, pageSize)=>{
const [pageIndex, setPageIndex] = useState(0);
const dataToRender = useMemo(()=>{
if (!pageSize) return data;
const startIndex = pageIndex * pageSize;
const endIndex = startIndex + pageSize;
return data.slice(startIndex, endIndex);
}, [
data,
pageIndex,
pageSize
]);
const totalPages = useMemo(()=>{
if (!pageSize) return 1;
return Math.ceil(data.length / pageSize);
}, [
data,
pageSize
]);
const handlePageChange = (newPage)=>{
if (newPage >= 0 && newPage < totalPages) setPageIndex(newPage);
};
return {
dataToRender,
totalPages,
handlePageChange,
pageIndex
};
};
const useLocalPagination = useLocalPagination_useLocalPagination;
export { useLocalPagination as default };