{"version":3,"file":"usePagination.mjs","sources":["../../../../../../../../web/src/adminPortal/utils/usePagination.ts"],"sourcesContent":["import { useState } from 'react';\n\nexport const usePagination = ({ itemsCount, itemsPerPage }: { itemsCount: number; itemsPerPage: number }) => {\n  const [currentPage, setCurrentPage] = useState(0);\n\n  // keep current page clamped within range in case number of items shrinks\n  const pageCount = Math.ceil(itemsCount / itemsPerPage);\n  const lastPageIndex = Math.max(0, pageCount - 1);\n  if (currentPage > lastPageIndex) {\n    setCurrentPage(lastPageIndex);\n  }\n\n  return {\n    currentPage,\n    setCurrentPage,\n  };\n};\n"],"names":["usePagination","itemsCount","itemsPerPage","currentPage","setCurrentPage","useState","pageCount","Math","ceil","lastPageIndex","max"],"mappings":";;;MAEaA,aAAAA,GAAgB,CAAC,EAAEC,UAAU,EAAEC,YAAY,EAAgD,GAAA;AACtG,IAAA,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGC,CAAAA,CAAS,CAAA,CAAA;;AAG/C,IAAA,MAAMC,SAAAA,GAAYC,IAAAA,CAAKC,IAAI,CAACP,UAAAA,GAAaC,YAAAA,CAAAA;AACzC,IAAA,MAAMO,aAAAA,GAAgBF,IAAAA,CAAKG,GAAG,CAAC,GAAGJ,SAAAA,GAAY,CAAA,CAAA;AAC9C,IAAA,IAAIH,cAAcM,aAAAA,EAAe;QAC/BL,cAAAA,CAAeK,aAAAA,CAAAA;AACjB,IAAA;IAEA,OAAO;AACLN,QAAAA,WAAAA;AACAC,QAAAA;AACF,KAAA;AACF;;;;"}