{"_id":"@dhanidwiputra/pagify","_rev":"5-fb28783fdeb128468840632b0fa3e7dd","name":"@dhanidwiputra/pagify","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@dhanidwiputra/pagify","version":"1.0.0","keywords":["simple","pagination","library"],"author":{"name":"dhany dwi putra"},"license":"MIT","_id":"@dhanidwiputra/pagify@1.0.0","maintainers":[{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"}],"dist":{"shasum":"f128d98faf22ac64ca67733506331cc4b6ec5c35","tarball":"https://registry.npmjs.org/@dhanidwiputra/pagify/-/pagify-1.0.0.tgz","fileCount":3,"integrity":"sha512-nt6J42kiAeb6M1/eoykLEkWzzlZuiWKjDCP7IaabW1epjDmOSZgjnTOh5SYQpRZy7TM3a5pJUb6tSofQRNDgoQ==","signatures":[{"sig":"MEQCIBw5PUnUDDwRMGqASWx3xEPbifI6m3fUFuwTeIu4yV6/AiAHTtmgUyTX3TQeEIkBp4kJEzNOB/NXl4SG9TvnH0io0Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7749},"main":"dist/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"},"_npmVersion":"10.8.2","description":"Simplify your pagination with Pagify","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"@types/react":"^19.0.2","@types/react-dom":"^19.0.2"},"_npmOperationalInternal":{"tmp":"tmp/pagify_1.0.0_1734593870018_0.054501758309621895","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dhanidwiputra/pagify","version":"1.0.1","keywords":["simple","pagination","library"],"author":{"name":"dhany dwi putra"},"license":"MIT","_id":"@dhanidwiputra/pagify@1.0.1","maintainers":[{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"}],"dist":{"shasum":"d1033528b78a36c74416926ae0d097deff944cea","tarball":"https://registry.npmjs.org/@dhanidwiputra/pagify/-/pagify-1.0.1.tgz","fileCount":3,"integrity":"sha512-FajHJ4425kU3w2eEiKkevW/jEvrNsVrTaW0ixeCh1v6Mkp43sg1w5BlUsuheb5qNiW2WvaNVE6k283Jcjm6W5A==","signatures":[{"sig":"MEQCIEg3ASLI1Z4Qsqq/SrJz4ijSgqiZZGqr00fI67J9EB/pAiBZLO+NMiUXVex9a3EEqp4TZLsl8QNk66Sbsa7TR2aVDg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7785},"main":"./dist/pagify.js","types":"./dist/pagify.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"},"_npmVersion":"10.8.2","description":"Simplify your pagination with Pagify","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"@types/react":"^19.0.2","@types/react-dom":"^19.0.2"},"_npmOperationalInternal":{"tmp":"tmp/pagify_1.0.1_1734594481740_0.5405199931944877","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@dhanidwiputra/pagify","version":"1.0.2","keywords":["simple","pagination","library"],"author":{"name":"dhany dwi putra"},"license":"MIT","_id":"@dhanidwiputra/pagify@1.0.2","maintainers":[{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"}],"dist":{"shasum":"b15191ab33617c5bd14369501a4f2f96210325f8","tarball":"https://registry.npmjs.org/@dhanidwiputra/pagify/-/pagify-1.0.2.tgz","fileCount":4,"integrity":"sha512-2HyWksbn2Uu0F+E2PTX6d4hxZ7A7Bf1A/qfazwVwbYSMfeKBZb6Vb5khh1lq8n4UjmXO/9lVChjrCPuMAS588w==","signatures":[{"sig":"MEYCIQCx3HMyPt+kWP8rZYKSz4LejWgkx1a2ceqiy7mUnN42dQIhAIQwNVByArN1TY+ONknZiRD/3Cd4CAs9v3qng+Fs67N0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10405},"main":"./dist/pagify.js","types":"./dist/pagify.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"},"_npmVersion":"10.8.2","description":"Simplify your pagination with Pagify","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"@types/react":"^19.0.2","@types/react-dom":"^19.0.2"},"_npmOperationalInternal":{"tmp":"tmp/pagify_1.0.2_1734596715825_0.10498838897971585","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@dhanidwiputra/pagify","version":"1.0.3","keywords":["simple","react","pagination","library"],"author":{"name":"dhany dwi putra"},"license":"MIT","_id":"@dhanidwiputra/pagify@1.0.3","maintainers":[{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"}],"dist":{"shasum":"0338f4f342af52dbd79ded55c26295f055bb4624","tarball":"https://registry.npmjs.org/@dhanidwiputra/pagify/-/pagify-1.0.3.tgz","fileCount":4,"integrity":"sha512-c6bztvShzKcb7sHpomP5IF3fRPdxVOjUOXD4mgRHHgfw0C4kdse/bFRDtLZYTRmb635l4hD5D2advdCpq6vOUA==","signatures":[{"sig":"MEUCIQCRseefQNQYExeNIl6yTKW7rilpzhI2Fj9DotQIr0cJUAIgEVWQKtLD7Y1JBi29oTg89UNyjb2wXbTk7KInGI//Wro=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10418},"main":"./dist/pagify.js","types":"./dist/pagify.d.ts","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"},"_npmVersion":"10.8.2","description":"Simplify your pagination with Pagify","directories":{},"_nodeVersion":"20.17.0","_hasShrinkwrap":false,"devDependencies":{"@types/react":"^19.0.2","@types/react-dom":"^19.0.2"},"_npmOperationalInternal":{"tmp":"tmp/pagify_1.0.3_1734600694273_0.8821964943045142","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@dhanidwiputra/pagify","version":"1.0.4","description":"Simplify your pagination with Pagify","main":"./dist/pagify.js","types":"./dist/pagify.d.ts","scripts":{"build":"tsc","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["simple","react","pagination","library"],"author":{"name":"dhany dwi putra"},"license":"MIT","devDependencies":{"@types/react":"^19.0.2","@types/react-dom":"^19.0.2"},"_id":"@dhanidwiputra/pagify@1.0.4","gitHead":"6b926e18546d04c4fcb915dd6eafcef617ec0933","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-4pjY5AhflXahUCDGm9g144q3MQkmZPY3HfiAQThfzuVgLUejKBJr0X0eN2JKyrfaCT2M4s/w5wJoi9ugfYMk8Q==","shasum":"ef7fdc781828dcb2637baf4eb17ed2da530cf674","tarball":"https://registry.npmjs.org/@dhanidwiputra/pagify/-/pagify-1.0.4.tgz","fileCount":5,"unpackedSize":11776,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCwEy4y5HPaxsUAw2iQWgercb6IxqC/n6ICAhSHaFpfVwIhALMA43XcNCqgIfYv6zBgRwcQYzcEDdX9zzGpPYFxfuIV"}]},"_npmUser":{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"},"directories":{},"maintainers":[{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pagify_1.0.4_1746002695294_0.860763127529359"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-19T07:37:49.945Z","modified":"2025-04-30T08:44:55.653Z","1.0.0":"2024-12-19T07:37:50.155Z","1.0.1":"2024-12-19T07:48:01.925Z","1.0.2":"2024-12-19T08:25:16.012Z","1.0.3":"2024-12-19T09:31:34.474Z","1.0.4":"2025-04-30T08:44:55.487Z"},"author":{"name":"dhany dwi putra"},"license":"MIT","keywords":["simple","react","pagination","library"],"description":"Simplify your pagination with Pagify","maintainers":[{"name":"dhanidwiputra","email":"nabatidhany@gmail.com"}],"readme":"\r\n# Pagify - A Friendly Pagination Library\r\n\r\nPagify is a lightweight and easy-to-use pagination library for React that helps you manage and display paginated data with ease. Whether you're working with large datasets or just need a simple way to navigate between pages, Pagify provides a flexible solution to make pagination hassle-free.\r\n\r\n\r\n\r\n\r\n\r\n## Key Features\r\n\r\n- **Simple Setup**: Easily integrate pagination into your React project with minimal configuration.\r\n- **Automatic Pagination State**: Automatically manages the current page and handles page changes using hooks.\r\n- **Flexible Pagination Options**: Control the number of items per page and the number of pages to display at once.\r\n- **Customizable Navigation**: Easily navigate to the next or previous page, or jump directly to any page.\r\n- **Supports Dynamic Data**: Ideal for paginating large datasets while keeping everything in sync with your UI.\r\n\r\n\r\n## Installation\r\n\r\nTo install Pagify in your project, run the following command:\r\n\r\n```bash\r\n  npm install @dhanidwiputra/pagify\r\n```\r\n\r\nOr, if you're using Yarn:\r\n\r\n```bash\r\n  yarn add @dhanidwiputra/pagify\r\n```\r\n    \r\n## Usage/Examples\r\n\r\n```javascript\r\nimport { usePagination } from '@dhanidwiputra/pagify';\r\n\r\nconst MyComponent = () => {\r\n  const { pagination, handlers } = usePagination(10, 5);\r\n\r\n  return (\r\n    <div>\r\n      <ul>\r\n        {pagination.pages.map(page => (\r\n          <li key={page} onClick={() => handlers.goToPage(page)}>\r\n            {page}\r\n          </li>\r\n        ))}\r\n      </ul>\r\n      <button onClick={handlers.prevPage} disabled={!pagination.hasPrevPage()}>\r\n        Previous\r\n      </button>\r\n      <button onClick={handlers.nextPage} disabled={!pagination.hasNextPage()}>\r\n        Next\r\n      </button>\r\n    </div>\r\n  );\r\n};\r\n\r\n```\r\n\r\n\r\n## Function\r\n\r\n`usePagination`\r\n\r\n```javascript\r\nusePagination(pageSize = 10, maxPages = 5)\r\n```\r\n\r\n**Parameter**\r\n\r\n`pageSize`: Number of items per page.\r\n\r\n`maxPages`: Maximum number of visible pages in the pagination.\r\n\r\n**Returns**: An object containing the current pagination (**pagination**) metadata and (**handlers**) to manage page changes.\r\n\r\n`pagination`:\r\n\r\n```javascript\r\n\r\n  totalItems: number;\r\n  currentPage: number;\r\n  pageSize: number;\r\n  totalPages: number;\r\n  startPage: number;\r\n  endPage: number;\r\n  startIndex: number;\r\n  endIndex: number;\r\n  pages: number[];\r\n\r\n```\r\n\r\n`handlers`:\r\n\r\n```javascript\r\n\r\n  nextPage: () => void;\r\n  prevPage: () => void;\r\n  goToPage: (page: number) => void;\r\n  setTotalItems: (total: number) => void;\r\n  hasNextPage: () => boolean;\r\n  hasPrevPage: () => boolean;\r\n\r\n```\r\n\r\n","readmeFilename":"README.md"}