{"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"}