koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
1 lines • 2.08 kB
Source Map (JSON)
{"version":3,"file":"usePagination.cjs","sources":["../../../../../src/lib/DataTable/tableFeatures/usePagination.ts"],"sourcesContent":["import {useCallback, useEffect, useState} from 'react';\nimport type {PaginationState} from '@tanstack/react-table';\n\nimport type {TableData} from './../types.ts';\n\nexport type Props = {\n paginationProp: PaginationState;\n tableData: TableData;\n onPaginationChange: (paginationState: PaginationState) => void;\n};\n\nexport const usePagination = ({paginationProp, onPaginationChange}: Props) => {\n const [pagination, setPagination] = useState<PaginationState>(paginationProp);\n\n useEffect(() => {\n setPagination(paginationProp);\n }, [paginationProp]);\n\n useEffect(() => {\n onPaginationChange(pagination);\n }, [onPaginationChange, pagination]);\n\n const currentPage = pagination.pageIndex + 1;\n\n const setCurrentPage = useCallback((nextPage: number) => {\n setPagination(prevState => ({...prevState, pageIndex: nextPage - 1}));\n }, []);\n\n const setPageSize = useCallback((nextSize: number) => {\n setPagination(prevState => ({...prevState, pageSize: nextSize}));\n }, []);\n\n return {\n pagination,\n setPagination,\n currentPage,\n setCurrentPage,\n setPageSize,\n };\n};\n"],"names":["usePagination","paginationProp","onPaginationChange","pagination","setPagination","useState","useEffect","currentPage","setCurrentPage","useCallback","nextPage","prevState","setPageSize","nextSize"],"mappings":"sHAWaA,EAAgB,CAAC,CAAC,eAAAC,EAAgB,mBAAAC,KAA+B,CAC1E,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAAA,SAA0BJ,CAAc,EAE5EK,EAAAA,UAAU,IAAM,CACZF,EAAcH,CAAc,CAAA,EAC7B,CAACA,CAAc,CAAC,EAEnBK,EAAAA,UAAU,IAAM,CACZJ,EAAmBC,CAAU,CAAA,EAC9B,CAACD,EAAoBC,CAAU,CAAC,EAE7B,MAAAI,EAAcJ,EAAW,UAAY,EAErCK,EAAiBC,cAAaC,GAAqB,CACrDN,MAA4B,CAAC,GAAGO,EAAW,UAAWD,EAAW,GAAG,CACxE,EAAG,EAAE,EAECE,EAAcH,cAAaI,GAAqB,CAClDT,MAA4B,CAAC,GAAGO,EAAW,SAAUE,GAAU,CACnE,EAAG,EAAE,EAEE,MAAA,CACH,WAAAV,EACA,cAAAC,EACA,YAAAG,EACA,eAAAC,EACA,YAAAI,CACJ,CACJ"}