gitscope
← marzneshin / master / dashboard/src/libs/entity-table/hooks/use-pagination.ts
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/libs/entity-table/hooks/use-pagination.ts · TypeScript
Blame Raw
 1import { useState } from "react";
 2import { useLocalStorage } from "@uidotdev/usehooks";
 3
 4export function usePagination({ entityKey}: { entityKey: string }) {
 5    const [rowPerPageLocal] = useLocalStorage<number>(`marzneshin-table-row-per-page-${entityKey}`, 10);
 6    const [pagination, setPagination] = useState({
 7        pageSize: rowPerPageLocal,
 8        pageIndex: 1,
 9    });
10    const { pageSize, pageIndex } = pagination;
11
12    return {
13        pageSize,
14        pageIndex,
15        onPaginationChange: setPagination,
16        pagination,
17        skip: pageSize * pageIndex,
18    };
19}