1.0.1 • Published 11 months ago

react-laravel-pagination v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

React-Laravel Pagination

React-Laravel Pagination is a very simple pagination package for react components. This package is based on the Laravel pagination collection and bootstrap UI. This package helps to make pagination simple and efficient for React apps with a Laravel API.

Installation

To install this package, simply run the following command with npm:

$ npm install react-laravel-pagination

Usage

Simply include the mandatory data and onChangeHandler props. Optional props further customize the pagination experience.

import { Pagination } from "react-laravel-pagination";

function App() {
  return  <Pagination data={yourData} onChangeHandler={yourOnChangeHandler} />
}

export default App;

Example Code

Example code are provided below

import { Pagination } from "react-laravel-pagination";
import { useEffect, useState } from "react";

function App() {
  const [users, setUsers] = useState();
  useEffect(() => {
    getUser();
  }, []);

  const getUser = (page = 1) => {
    const url = "you-url?page=" + page;
    fetch(url)
      .then((x) => x.text())
      .then((y) => {
        setUsers(JSON.parse(y));
      });
  };
  return (
    <div>
      {(users && Object.keys(users).length > 0 )&& (
        <Pagination data={users} onChangeHandler={getUser} />
      )}
    </div>
  );
}

export default App;

Props for Pagination Component

Customize your pagination experience by utilizing a range of props that suit your requirements and enhance functionality.

Prop NameTypeDescriptionDefault/Required
dataobjectObject containing pagination data properties.required
data.fromstring or numberThe starting item number of the current page.required
data.tostring or numberThe ending item number of the current page.required
data.totalstring or numberThe total number of items.required
data.linksarrayArray of links for pagination.required
onChangeHandlerfuncHandler function for page change.required
previousBtnTextstring or elementText or element for the previous button.<
nextBtnTextstring or elementText or element for the next button.>
showingCountboolWhether to display the item count.true
activePagenumberActiveCurrent page number.1 or url page query string value
paginationClassstringCSS class for the pagination container."pagination flex-wrap gap-2 gap-md-0"
paginateItemClassstringCSS class for each pagination item."page-item"
paginateLinkClassstringCSS class for pagination links."page-link cursor-pointer"
pageNumberAppendToUrlboolWhether to append the page number to the URL.true

use usePaginationParams Hook

A React hook for managing page numbers from URL query parameters. It maintains the page number in the URL across reloads and facilitates fetching data from a server based on the specified page number.

import { usePaginationParams } from "react-laravel-pagination";

function App() {
  const { pageNumber } = usePaginationParams();
  useEffect(() => {
    getUser();
  }, []);

  const getUser = (page = pageNumber) => {
    const url = "you-url?page=" + page;
    fetch(url)
      .then((x) => x.text())
      .then((y) => {
        setUsers(JSON.parse(y));
      });
  };
  return (
    <div>
      {(users && Object.keys(users).length > 0 )&& (
        <Pagination data={users} onChangeHandler={getUser} />
      )}
    </div>
  );
}

export default App;

Demo

Here is a screenshot demonstrating the final or result of using pagination package.

Package Output Screenshot

License

React-Laravel Pagination is created by Fahim Muntasir . Released under the MIT license.