1.0.6 • Published 3 years ago

fg-reactjs-paginator v1.0.6

Weekly downloads
7
License
MIT
Repository
github
Last release
3 years ago

fg-reactjs-paginator

A ReactJS component to render pagination with logic like Google's search results.

NPM JavaScript Style Guide

Install

npm install --save fg-reactjs-paginator

Example of usage

You can see the component in action on Github Pages.

import React, { useState } from 'react'
import ReactPaginator from 'fg-reactjs-paginator'
import 'fg-reactjs-paginator/dist/index.css'

import dummyData from './dummy-data'

const App = () => {
  const [filteredItems, setFilteredItems] = useState<Array<any>>([])

  return (
    <div>
      {filteredItems.length > 0 && (
        <ul>
          {filteredItems.map((item) => (
            <li>{item.text}</li>
          ))}
        </ul>
      )}

      <ReactPaginator
        items={dummyData}
        itemsPerPage={10}
        handleFilteredItems={setFilteredItems}
        paginationSize={5}
      />
    </div>
  )
}

export default App

Overriding component classes

<ReactPaginator
  ...
  classes={{
    container: "container-class",
    button: "button-class",
    disabled: "disabled-class",
    active: "active-class",
    firstButton: 'first-button-class'
    lastButton: 'last-button-class'
    previousButton: 'previous-button-class'
    nextButton: 'next-button-class'
  }}
  ...
/>

/* Example of structure with classes */
<ul className='container-class'>

  <li>
    {/*First button*/}
    <button className='button-class first-class'>First</button>
  </li>
  <li>
    {/*Previous button*/}
    <button className='button-class previous-class'>Previous</button>
  </li>
  <li>
    {/*Standard button*/}
    <button className='button-class'>...</button>
  </li>
  <li>
    {/*Disabled button*/}
    <button className='button-class disabled-class'>...</button>
  </li>
  <li>
    {/*Active button*/}
    <button className='button-class active-class'>...</button>
  </li>
  <li>
    {/*Next button*/}
    <button className='button-class next-class'>Next</button>
  </li>
  <li>
    {/*Last button*/}
    <button className='button-class last-class'>Last</button>
  </li>
</ul>

The active and disabled classes are applied to all buttons!

Props

NameTypeDescription
itemsNumberRequired. Array of items to be paged.
handleFilteredItemsFunctionRequired. Function that will receive filtered items.
itemsPerPageNumberNumber of items returned per page. Default value 10
paginationSizeNumberNumber of buttons shown on the pagination. Default value 10
previousLabelNodeLabel for the previous button. Default value Previous
nextLabelNodeLabel for the next button. Default value Next
firstLabelNodeLabel for the first button. Default value First
lastLabelNodeLabel for the last button. Default value Last
initialPageNumberThe initial page selected.
classesObjectObject to override component classes
showFirstAndLastButtonsBooleanShow/hide First and Last buttons. Default value true

Contribute

  1. Submit an issue
  2. Fork the repository
  3. Create a dedicated branch (never ever work in master)
  4. Fix bugs or implement features

Author

License

MIT © FrancisGregori

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago