Advertisement
Guest User

Spring Boot Pagination In React

a guest
Aug 25th, 2018
1,328
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, {Component} from 'react';
  2.  
  3. class UserPagination extends Component {
  4.  
  5.     constructor(props) {
  6.         super(props);
  7.  
  8.         this.state = {
  9.             page: props.page,
  10.             pageSize: props.pageSize,
  11.             currentPage: props.currentPage,
  12.             totalNumberOfElements: props.totalNumberOfElements
  13.         };
  14.  
  15.         this.onPageChange = this.onPageChange.bind(this);
  16.         this.goToFirstPage = this.goToFirstPage.bind(this);
  17.         this.goToLastPage = this.goToLastPage.bind(this);
  18.         this.goToPreviousPage = this.goToPreviousPage.bind(this);
  19.         this.goToNextPage = this.goToNextPage.bind(this);
  20.         this.buildPagination = this.buildPagination.bind(this);
  21.     }
  22.  
  23.     onPageChange = (pageNumber) => {
  24.         this.props.handleChangePage(pageNumber);
  25.     };
  26.  
  27.     static getDerivedStateFromProps(props, state) {
  28.         state = props;
  29.         return state;
  30.     }
  31.  
  32.     goToFirstPage() {
  33.         this.onPageChange(0);
  34.     }
  35.  
  36.     goToLastPage() {
  37.         this.onPageChange(this.state.page.totalNumberOfPages - 1);
  38.     }
  39.  
  40.     goToPreviousPage() {
  41.         const previousPage = this.state.page.previousPageable;
  42.         if (previousPage !== "INSTANCE") {
  43.             this.onPageChange(previousPage.pageNumber);
  44.         }
  45.     }
  46.  
  47.     goToNextPage() {
  48.         const {currentPage, page} = this.state;
  49.         const nextPage = page.nextPageable;
  50.         if (nextPage !== "INSTANCE") {
  51.             this.onPageChange(currentPage + 1);
  52.         }
  53.     }
  54.  
  55.     buildPagination(page, currentPage) {
  56.  
  57.         let pagination = [];
  58.  
  59.         if (page.totalNumberOfPages === 1) {
  60.             pagination.push(
  61.                 <li key={1} className="page-item active">
  62.                     <p className="page-link">1</p>
  63.                 </li>
  64.             );
  65.             return pagination
  66.         }
  67.         else if (page.totalNumberOfPages === 2) {
  68.             switch (currentPage) {
  69.                 case 1 - 1:
  70.                     pagination.push(
  71.                         <li key={1} className="page-item active">
  72.                             <p className="page-link">1</p>
  73.                         </li>
  74.                     );
  75.                     pagination.push(
  76.                         <li key={2} className="page-item" onClick={this.goToNextPage}>
  77.                             <p className="page-link">2</p>
  78.                         </li>
  79.                     );
  80.                     pagination.push(
  81.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  82.                             <p className="page-link">Next</p>
  83.                         </li>
  84.                     );
  85.                     return pagination;
  86.                 case 2 - 1:
  87.                     pagination.push(
  88.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  89.                             <p className="page-link">Prev</p>
  90.                         </li>
  91.                     );
  92.                     pagination.push(
  93.                         <li key={1} className="page-item" onClick={this.goToPreviousPage}>
  94.                             <p className="page-link">1</p>
  95.                         </li>
  96.                     );
  97.                     pagination.push(
  98.                         <li key={2} className="page-item active">
  99.                             <p className="page-link">2</p>
  100.                         </li>
  101.                     );
  102.                     return pagination;
  103.                 default:
  104.                     return pagination;
  105.  
  106.             }
  107.         }
  108.         else if (page.totalNumberOfPages === 3) {
  109.             switch (currentPage) {
  110.                 case 1 - 1:
  111.                     pagination.push(
  112.                         <li key={1} className="page-item active">
  113.                             <p className="page-link">1</p>
  114.                         </li>
  115.                     );
  116.                     pagination.push(
  117.                         <li key={2} className="page-item" onClick={this.goToNextPage}>
  118.                             <p className="page-link">2</p>
  119.                         </li>
  120.                     );
  121.                     pagination.push(
  122.                         <li key={3} className="page-item" onClick={this.goToLastPage}>
  123.                             <p className="page-link">3</p>
  124.                         </li>
  125.                     );
  126.                     pagination.push(
  127.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  128.                             <p className="page-link">Next</p>
  129.                         </li>
  130.                     );
  131.                     pagination.push(
  132.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  133.                             <p className="page-link">&raquo;</p>
  134.                         </li>
  135.                     );
  136.                     return pagination;
  137.                 case 2 - 1:
  138.                     pagination.push(
  139.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  140.                             <p className="page-link">Prev</p>
  141.                         </li>
  142.                     );
  143.                     pagination.push(
  144.                         <li key={1} className="page-item" onClick={this.goToPreviousPage}>
  145.                             <p className="page-link">1</p>
  146.                         </li>
  147.                     );
  148.                     pagination.push(
  149.                         <li key={2} className="page-item active">
  150.                             <p className="page-link">2</p>
  151.                         </li>
  152.                     );
  153.                     pagination.push(
  154.                         <li key={3} className="page-item" onClick={this.goToNextPage}>
  155.                             <p className="page-link">3</p>
  156.                         </li>
  157.                     );
  158.                     pagination.push(
  159.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  160.                             <p className="page-link">Next</p>
  161.                         </li>
  162.                     );
  163.                     return pagination;
  164.                 case 3 - 1:
  165.                     pagination.push(
  166.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  167.                             <p className="page-link">&laquo;</p>
  168.                         </li>
  169.                     );
  170.                     pagination.push(
  171.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  172.                             <p className="page-link">Prev</p>
  173.                         </li>
  174.                     );
  175.                     pagination.push(
  176.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  177.                             <p className="page-link">1</p>
  178.                         </li>
  179.                     );
  180.                     pagination.push(
  181.                         <li key={2} className="page-item" onClick={this.goToPreviousPage}>
  182.                             <p className="page-link">2</p>
  183.                         </li>
  184.                     );
  185.                     pagination.push(
  186.                         <li key={3} className="page-item active">
  187.                             <p className="page-link">3</p>
  188.                         </li>
  189.                     );
  190.                     return pagination;
  191.                 default:
  192.                     return pagination;
  193.             }
  194.         }
  195.         else if (page.totalNumberOfPages === 4) {
  196.             switch (currentPage) {
  197.                 case 1 - 1:
  198.                     pagination.push(
  199.                         <li key={1} className="page-item active">
  200.                             <p className="page-link">1</p>
  201.                         </li>
  202.                     );
  203.                     pagination.push(
  204.                         <li key={2} className="page-item" onClick={this.goToNextPage}>
  205.                             <p className="page-link">2</p>
  206.                         </li>
  207.                     );
  208.                     pagination.push(
  209.                         <li key={"..."} className="page-item">
  210.                             <p className="page-link text-muted">...</p>
  211.                         </li>
  212.                     );
  213.                     pagination.push(
  214.                         <li key={4} className="page-item" onClick={this.goToLastPage}>
  215.                             <p className="page-link">4</p>
  216.                         </li>
  217.                     );
  218.                     pagination.push(
  219.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  220.                             <p className="page-link">Next</p>
  221.                         </li>
  222.                     );
  223.                     pagination.push(
  224.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  225.                             <p className="page-link">&raquo;</p>
  226.                         </li>
  227.                     );
  228.                     return pagination;
  229.                 case 2 - 1:
  230.                     pagination.push(
  231.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  232.                             <p className="page-link">Prev</p>
  233.                         </li>
  234.                     );
  235.                     pagination.push(
  236.                         <li key={1} className="page-item" onClick={this.goToPreviousPage}>
  237.                             <p className="page-link">1</p>
  238.                         </li>
  239.                     );
  240.                     pagination.push(
  241.                         <li key={2} className="page-item active">
  242.                             <p className="page-link">2</p>
  243.                         </li>
  244.                     );
  245.                     pagination.push(
  246.                         <li key={3} className="page-item" onClick={this.goToNextPage}>
  247.                             <p className="page-link">3</p>
  248.                         </li>
  249.                     );
  250.                     pagination.push(
  251.                         <li key={4} className="page-item" onClick={this.goToLastPage}>
  252.                             <p className="page-link">4</p>
  253.                         </li>
  254.                     );
  255.                     pagination.push(
  256.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  257.                             <p className="page-link">Next</p>
  258.                         </li>
  259.                     );
  260.                     pagination.push(
  261.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  262.                             <p className="page-link">&raquo;</p>
  263.                         </li>
  264.                     );
  265.                     return pagination;
  266.                 case 3 - 1:
  267.                     pagination.push(
  268.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  269.                             <p className="page-link">&laquo;</p>
  270.                         </li>
  271.                     );
  272.                     pagination.push(
  273.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  274.                             <p className="page-link">Prev</p>
  275.                         </li>
  276.                     );
  277.                     pagination.push(
  278.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  279.                             <p className="page-link">1</p>
  280.                         </li>
  281.                     );
  282.                     pagination.push(
  283.                         <li key={2} className="page-item" onClick={this.goToPreviousPage}>
  284.                             <p className="page-link">2</p>
  285.                         </li>
  286.                     );
  287.                     pagination.push(
  288.                         <li key={3} className="page-item active">
  289.                             <p className="page-link">3</p>
  290.                         </li>
  291.                     );
  292.                     pagination.push(
  293.                         <li key={4} className="page-item" onClick={this.goToNextPage}>
  294.                             <p className="page-link">4</p>
  295.                         </li>
  296.                     );
  297.                     pagination.push(
  298.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  299.                             <p className="page-link">Next</p>
  300.                         </li>
  301.                     );
  302.                     return pagination;
  303.                 case 4 - 1:
  304.                     pagination.push(
  305.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  306.                             <p className="page-link">&laquo;</p>
  307.                         </li>
  308.                     );
  309.                     pagination.push(
  310.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  311.                             <p className="page-link">Prev</p>
  312.                         </li>
  313.                     );
  314.                     pagination.push(
  315.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  316.                             <p className="page-link">1</p>
  317.                         </li>
  318.                     );
  319.                     pagination.push(
  320.                         <li key={"..."} className="page-item">
  321.                             <p className="page-link text-muted">...</p>
  322.                         </li>
  323.                     );
  324.                     pagination.push(
  325.                         <li key={3} className="page-item" onClick={this.goToPreviousPage}>
  326.                             <p className="page-link">3</p>
  327.                         </li>
  328.                     );
  329.                     pagination.push(
  330.                         <li key={4} className="page-item active">
  331.                             <p className="page-link">4</p>
  332.                         </li>
  333.                     );
  334.                     return pagination;
  335.                 default:
  336.                     return pagination;
  337.             }
  338.         }
  339.         else if (page.totalNumberOfPages === 5) {
  340.             switch (currentPage) {
  341.                 case 1 - 1:
  342.                     pagination.push(
  343.                         <li key={1} className="page-item active">
  344.                             <p className="page-link">1</p>
  345.                         </li>
  346.                     );
  347.                     pagination.push(
  348.                         <li key={2} className="page-item" onClick={this.goToNextPage}>
  349.                             <p className="page-link">2</p>
  350.                         </li>
  351.                     );
  352.                     pagination.push(
  353.                         <li key={"..."} className="page-item">
  354.                             <p className="page-link text-muted">...</p>
  355.                         </li>
  356.                     );
  357.                     pagination.push(
  358.                         <li key={5} className="page-item" onClick={this.goToLastPage}>
  359.                             <p className="page-link">5</p>
  360.                         </li>
  361.                     );
  362.                     pagination.push(
  363.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  364.                             <p className="page-link">Next</p>
  365.                         </li>
  366.                     );
  367.                     pagination.push(
  368.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  369.                             <p className="page-link">&raquo;</p>
  370.                         </li>
  371.                     );
  372.                     return pagination;
  373.                 case 2 - 1:
  374.                     pagination.push(
  375.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  376.                             <p className="page-link">Prev</p>
  377.                         </li>
  378.                     );
  379.                     pagination.push(
  380.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  381.                             <p className="page-link">1</p>
  382.                         </li>
  383.                     );
  384.                     pagination.push(
  385.                         <li key={2} className="page-item active">
  386.                             <p className="page-link">2</p>
  387.                         </li>
  388.                     );
  389.                     pagination.push(
  390.                         <li key={3} className="page-item" onClick={this.goToNextPage}>
  391.                             <p className="page-link">3</p>
  392.                         </li>
  393.                     );
  394.                     pagination.push(
  395.                         <li key={"..."} className="page-item">
  396.                             <p className="page-link text-muted">...</p>
  397.                         </li>
  398.                     );
  399.                     pagination.push(
  400.                         <li key={5} className="page-item" onClick={this.goToLastPage}>
  401.                             <p className="page-link">5</p>
  402.                         </li>
  403.                     );
  404.                     pagination.push(
  405.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  406.                             <p className="page-link">Next</p>
  407.                         </li>
  408.                     );
  409.                     pagination.push(
  410.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  411.                             <p className="page-link">&raquo;</p>
  412.                         </li>
  413.                     );
  414.                     return pagination;
  415.                 case 3 - 1:
  416.                     pagination.push(
  417.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  418.                             <p className="page-link">&laquo;</p>
  419.                         </li>
  420.                     );
  421.                     pagination.push(
  422.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  423.                             <p className="page-link">Prev</p>
  424.                         </li>
  425.                     );
  426.                     pagination.push(
  427.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  428.                             <p className="page-link">1</p>
  429.                         </li>
  430.                     );
  431.                     pagination.push(
  432.                         <li key={2} className="page-item" onClick={this.goToPreviousPage}>
  433.                             <p className="page-link">2</p>
  434.                         </li>
  435.                     );
  436.                     pagination.push(
  437.                         <li key={3} className="page-item active">
  438.                             <p className="page-link">3</p>
  439.                         </li>
  440.                     );
  441.                     pagination.push(
  442.                         <li key={4} className="page-item" onClick={this.goToNextPage}>
  443.                             <p className="page-link">4</p>
  444.                         </li>
  445.                     );
  446.                     pagination.push(
  447.                         <li key={5} className="page-item" onClick={this.goToLastPage}>
  448.                             <p className="page-link">5</p>
  449.                         </li>
  450.                     );
  451.                     pagination.push(
  452.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  453.                             <p className="page-link">Next</p>
  454.                         </li>
  455.                     );
  456.                     pagination.push(
  457.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  458.                             <p className="page-link">&raquo;</p>
  459.                         </li>
  460.                     );
  461.                     return pagination;
  462.                 case 4 - 1:
  463.                     pagination.push(
  464.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  465.                             <p className="page-link">&laquo;</p>
  466.                         </li>
  467.                     );
  468.                     pagination.push(
  469.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  470.                             <p className="page-link">Prev</p>
  471.                         </li>
  472.                     );
  473.                     pagination.push(
  474.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  475.                             <p className="page-link">1</p>
  476.                         </li>
  477.                     );
  478.                     pagination.push(
  479.                         <li key={"..."} className="page-item">
  480.                             <p className="page-link text-muted">...</p>
  481.                         </li>
  482.                     );
  483.                     pagination.push(
  484.                         <li key={3} className="page-item" onClick={this.goToPreviousPage}>
  485.                             <p className="page-link">3</p>
  486.                         </li>
  487.                     );
  488.                     pagination.push(
  489.                         <li key={4} className="page-item active">
  490.                             <p className="page-link">4</p>
  491.                         </li>
  492.                     );
  493.                     pagination.push(
  494.                         <li key={5} className="page-item" onClick={this.goToLastPage}>
  495.                             <p className="page-link">5</p>
  496.                         </li>
  497.                     );
  498.                     pagination.push(
  499.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  500.                             <p className="page-link">Next</p>
  501.                         </li>
  502.                     );
  503.                     return pagination;
  504.                 case 5 - 1:
  505.                     pagination.push(
  506.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  507.                             <p className="page-link">&laquo;</p>
  508.                         </li>
  509.                     );
  510.                     pagination.push(
  511.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  512.                             <p className="page-link">Prev</p>
  513.                         </li>
  514.                     );
  515.                     pagination.push(
  516.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  517.                             <p className="page-link">1</p>
  518.                         </li>
  519.                     );
  520.                     pagination.push(
  521.                         <li key={"..."} className="page-item">
  522.                             <p className="page-link text-muted">...</p>
  523.                         </li>
  524.                     );
  525.                     pagination.push(
  526.                         <li key={4} className="page-item" onClick={this.goToPreviousPage}>
  527.                             <p className="page-link">4</p>
  528.                         </li>
  529.                     );
  530.                     pagination.push(
  531.                         <li key={5} className="page-item active">
  532.                             <p className="page-link">5</p>
  533.                         </li>
  534.                     );
  535.                     return pagination;
  536.             }
  537.         }
  538.         else if (page.totalNumberOfPages === 6) {
  539.             switch (currentPage) {
  540.                 case 1 - 1:
  541.                     pagination.push(
  542.                         <li key={1} className="page-item active">
  543.                             <p className="page-link">1</p>
  544.                         </li>
  545.                     );
  546.                     pagination.push(
  547.                         <li key={2} className="page-item" onClick={this.goToNextPage}>
  548.                             <p className="page-link">2</p>
  549.                         </li>
  550.                     );
  551.                     pagination.push(
  552.                         <li key={"..."} className="page-item">
  553.                             <p className="page-link text-muted">...</p>
  554.                         </li>
  555.                     );
  556.                     pagination.push(
  557.                         <li key={6} className="page-item" onClick={this.goToLastPage}>
  558.                             <p className="page-link">6</p>
  559.                         </li>
  560.                     );
  561.                     pagination.push(
  562.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  563.                             <p className="page-link">Next</p>
  564.                         </li>
  565.                     );
  566.                     pagination.push(
  567.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  568.                             <p className="page-link">&raquo;</p>
  569.                         </li>
  570.                     );
  571.                     return pagination;
  572.                 case 2 - 1:
  573.                     pagination.push(
  574.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  575.                             <p className="page-link">Prev</p>
  576.                         </li>
  577.                     );
  578.                     pagination.push(
  579.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  580.                             <p className="page-link">1</p>
  581.                         </li>
  582.                     );
  583.                     pagination.push(
  584.                         <li key={2} className="page-item active">
  585.                             <p className="page-link">2</p>
  586.                         </li>
  587.                     );
  588.                     pagination.push(
  589.                         <li key={3} className="page-item" onClick={this.goToNextPage}>
  590.                             <p className="page-link">3</p>
  591.                         </li>
  592.                     );
  593.                     pagination.push(
  594.                         <li key={"..."} className="page-item">
  595.                             <p className="page-link text-muted">...</p>
  596.                         </li>
  597.                     );
  598.                     pagination.push(
  599.                         <li key={6} className="page-item" onClick={this.goToLastPage}>
  600.                             <p className="page-link">6</p>
  601.                         </li>
  602.                     );
  603.                     pagination.push(
  604.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  605.                             <p className="page-link">Next</p>
  606.                         </li>
  607.                     );
  608.                     pagination.push(
  609.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  610.                             <p className="page-link">&raquo;</p>
  611.                         </li>
  612.                     );
  613.                     return pagination;
  614.                 case 3 - 1:
  615.                     pagination.push(
  616.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  617.                             <p className="page-link">&laquo;</p>
  618.                         </li>
  619.                     );
  620.                     pagination.push(
  621.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  622.                             <p className="page-link">Prev</p>
  623.                         </li>
  624.                     );
  625.                     pagination.push(
  626.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  627.                             <p className="page-link">1</p>
  628.                         </li>
  629.                     );
  630.                     pagination.push(
  631.                         <li key={2} className="page-item" onClick={this.goToPreviousPage}>
  632.                             <p className="page-link">2</p>
  633.                         </li>
  634.                     );
  635.                     pagination.push(
  636.                         <li key={3} className="page-item active">
  637.                             <p className="page-link">3</p>
  638.                         </li>
  639.                     );
  640.                     pagination.push(
  641.                         <li key={4} className="page-item" onClick={this.goToNextPage}>
  642.                             <p className="page-link">4</p>
  643.                         </li>
  644.                     );
  645.                     pagination.push(
  646.                         <li key={"..."} className="page-item">
  647.                             <p className="page-link text-muted">...</p>
  648.                         </li>
  649.                     );
  650.                     pagination.push(
  651.                         <li key={6} className="page-item" onClick={this.goToLastPage}>
  652.                             <p className="page-link">6</p>
  653.                         </li>
  654.                     );
  655.                     pagination.push(
  656.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  657.                             <p className="page-link">Next</p>
  658.                         </li>
  659.                     );
  660.                     pagination.push(
  661.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  662.                             <p className="page-link">&raquo;</p>
  663.                         </li>
  664.                     );
  665.                     return pagination;
  666.                 case 4 - 1:
  667.                     pagination.push(
  668.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  669.                             <p className="page-link">&laquo;</p>
  670.                         </li>
  671.                     );
  672.                     pagination.push(
  673.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  674.                             <p className="page-link">Prev</p>
  675.                         </li>
  676.                     );
  677.                     pagination.push(
  678.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  679.                             <p className="page-link">1</p>
  680.                         </li>
  681.                     );
  682.                     pagination.push(
  683.                         <li key={"..."} className="page-item">
  684.                             <p className="page-link text-muted">...</p>
  685.                         </li>
  686.                     );
  687.                     pagination.push(
  688.                         <li key={3} className="page-item" onClick={this.goToPreviousPage}>
  689.                             <p className="page-link">3</p>
  690.                         </li>
  691.                     );
  692.                     pagination.push(
  693.                         <li key={4} className="page-item active">
  694.                             <p className="page-link">4</p>
  695.                         </li>
  696.                     );
  697.                     pagination.push(
  698.                         <li key={5} className="page-item" onClick={this.goToNextPage}>
  699.                             <p className="page-link">5</p>
  700.                         </li>
  701.                     );
  702.                     pagination.push(
  703.                         <li key={6} className="page-item" onClick={this.goToLastPage}>
  704.                             <p className="page-link">6</p>
  705.                         </li>
  706.                     );
  707.                     pagination.push(
  708.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  709.                             <p className="page-link">Next</p>
  710.                         </li>
  711.                     );
  712.                     pagination.push(
  713.                         <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  714.                             <p className="page-link">&raquo;</p>
  715.                         </li>
  716.                     );
  717.                     return pagination;
  718.                 case 5 - 1:
  719.                     pagination.push(
  720.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  721.                             <p className="page-link">&laquo;</p>
  722.                         </li>
  723.                     );
  724.                     pagination.push(
  725.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  726.                             <p className="page-link">Prev</p>
  727.                         </li>
  728.                     );
  729.                     pagination.push(
  730.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  731.                             <p className="page-link">1</p>
  732.                         </li>
  733.                     );
  734.                     pagination.push(
  735.                         <li key={"..."} className="page-item">
  736.                             <p className="page-link text-muted">...</p>
  737.                         </li>
  738.                     );
  739.                     pagination.push(
  740.                         <li key={4} className="page-item" onClick={this.goToPreviousPage}>
  741.                             <p className="page-link">4</p>
  742.                         </li>
  743.                     );
  744.                     pagination.push(
  745.                         <li key={5} className="page-item active">
  746.                             <p className="page-link">5</p>
  747.                         </li>
  748.                     );
  749.                     pagination.push(
  750.                         <li key={6} className="page-item" onClick={this.goToLastPage}>
  751.                             <p className="page-link">6</p>
  752.                         </li>
  753.                     );
  754.                     pagination.push(
  755.                         <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  756.                             <p className="page-link">Next</p>
  757.                         </li>
  758.                     );
  759.                     return pagination;
  760.                 case 6 - 1:
  761.                     pagination.push(
  762.                         <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  763.                             <p className="page-link">&laquo;</p>
  764.                         </li>
  765.                     );
  766.                     pagination.push(
  767.                         <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  768.                             <p className="page-link">Prev</p>
  769.                         </li>
  770.                     );
  771.                     pagination.push(
  772.                         <li key={1} className="page-item" onClick={this.goToFirstPage}>
  773.                             <p className="page-link">1</p>
  774.                         </li>
  775.                     );
  776.                     pagination.push(
  777.                         <li key={"..."} className="page-item">
  778.                             <p className="page-link text-muted">...</p>
  779.                         </li>
  780.                     );
  781.                     pagination.push(
  782.                         <li key={5} className="page-item" onClick={this.goToPreviousPage}>
  783.                             <p className="page-link">5</p>
  784.                         </li>
  785.                     );
  786.                     pagination.push(
  787.                         <li key={6} className="page-item active">
  788.                             <p className="page-link">6</p>
  789.                         </li>
  790.                     );
  791.                     return pagination;
  792.             }
  793.  
  794.         }
  795.         else if (page.totalNumberOfPages >= 7) {
  796.             if (currentPage === 1 - 1) {
  797.                 pagination.push(
  798.                     <li key={1} className="page-item active">
  799.                         <p className="page-link">1</p>
  800.                     </li>
  801.                 );
  802.                 pagination.push(
  803.                     <li key={2} className="page-item" onClick={this.goToNextPage}>
  804.                         <p className="page-link">2</p>
  805.                     </li>
  806.                 );
  807.                 pagination.push(
  808.                     <li key={"..."} className="page-item">
  809.                         <p className="page-link text-muted">...</p>
  810.                     </li>
  811.                 );
  812.                 pagination.push(
  813.                     <li key={page.totalNumberOfPages} className="page-item" onClick={this.goToLastPage}>
  814.                         <p className="page-link">{page.totalNumberOfPages}</p>
  815.                     </li>
  816.                 );
  817.                 pagination.push(
  818.                     <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  819.                         <p className="page-link">Next</p>
  820.                     </li>
  821.                 );
  822.                 pagination.push(
  823.                     <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  824.                         <p className="page-link">&raquo;</p>
  825.                     </li>
  826.                 );
  827.                 return pagination;
  828.             }
  829.             else if (currentPage === 2 - 1) {
  830.                 pagination.push(
  831.                     <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  832.                         <p className="page-link">Prev</p>
  833.                     </li>
  834.                 );
  835.                 pagination.push(
  836.                     <li key={1} className="page-item" onClick={this.goToFirstPage}>
  837.                         <p className="page-link">1</p>
  838.                     </li>
  839.                 );
  840.                 pagination.push(
  841.                     <li key={2} className="page-item active">
  842.                         <p className="page-link">2</p>
  843.                     </li>
  844.                 );
  845.                 pagination.push(
  846.                     <li key={3} className="page-item" onClick={this.goToNextPage}>
  847.                         <p className="page-link">3</p>
  848.                     </li>
  849.                 );
  850.                 pagination.push(
  851.                     <li key={"..."} className="page-item">
  852.                         <p className="page-link text-muted">...</p>
  853.                     </li>
  854.                 );
  855.                 pagination.push(
  856.                     <li key={page.totalNumberOfPages} className="page-item" onClick={this.goToLastPage}>
  857.                         <p className="page-link">{page.totalNumberOfPages}</p>
  858.                     </li>
  859.                 );
  860.                 pagination.push(
  861.                     <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  862.                         <p className="page-link">Next</p>
  863.                     </li>
  864.                 );
  865.                 pagination.push(
  866.                     <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  867.                         <p className="page-link">&raquo;</p>
  868.                     </li>
  869.                 );
  870.                 return pagination;
  871.             }
  872.             else if (currentPage === 3 - 1) {
  873.                 pagination.push(
  874.                     <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  875.                         <p className="page-link">&laquo;</p>
  876.                     </li>
  877.                 );
  878.                 pagination.push(
  879.                     <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  880.                         <p className="page-link">Prev</p>
  881.                     </li>
  882.                 );
  883.                 pagination.push(
  884.                     <li key={1} className="page-item" onClick={this.goToFirstPage}>
  885.                         <p className="page-link">1</p>
  886.                     </li>
  887.                 );
  888.                 pagination.push(
  889.                     <li key={2} className="page-item" onClick={this.goToPreviousPage}>
  890.                         <p className="page-link">2</p>
  891.                     </li>
  892.                 );
  893.                 pagination.push(
  894.                     <li key={3} className="page-item active">
  895.                         <p className="page-link">3</p>
  896.                     </li>
  897.                 );
  898.                 pagination.push(
  899.                     <li key={4} className="page-item" onClick={this.goToNextPage}>
  900.                         <p className="page-link">4</p>
  901.                     </li>
  902.                 );
  903.                 pagination.push(
  904.                     <li key={"..."} className="page-item">
  905.                         <p className="page-link text-muted">...</p>
  906.                     </li>
  907.                 );
  908.                 pagination.push(
  909.                     <li key={page.totalNumberOfPages} className="page-item" onClick={this.goToLastPage}>
  910.                         <p className="page-link">{page.totalNumberOfPages}</p>
  911.                     </li>
  912.                 );
  913.                 pagination.push(
  914.                     <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  915.                         <p className="page-link">Next</p>
  916.                     </li>
  917.                 );
  918.                 pagination.push(
  919.                     <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  920.                         <p className="page-link">&raquo;</p>
  921.                     </li>
  922.                 );
  923.                 return pagination;
  924.             }
  925.             else if (currentPage === 4 - 1) {
  926.                 pagination.push(
  927.                     <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  928.                         <p className="page-link">&laquo;</p>
  929.                     </li>
  930.                 );
  931.                 pagination.push(
  932.                     <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  933.                         <p className="page-link">Prev</p>
  934.                     </li>
  935.                 );
  936.                 pagination.push(
  937.                     <li key={1} className="page-item" onClick={this.goToFirstPage}>
  938.                         <p className="page-link">1</p>
  939.                     </li>
  940.                 );
  941.                 pagination.push(
  942.                     <li key={"...1"} className="page-item">
  943.                         <p className="page-link text-muted">...</p>
  944.                     </li>
  945.                 );
  946.                 pagination.push(
  947.                     <li key={3} className="page-item" onClick={this.goToPreviousPage}>
  948.                         <p className="page-link">3</p>
  949.                     </li>
  950.                 );
  951.                 pagination.push(
  952.                     <li key={4} className="page-item active">
  953.                         <p className="page-link">4</p>
  954.                     </li>
  955.                 );
  956.                 pagination.push(
  957.                     <li key={5} className="page-item" onClick={this.goToNextPage}>
  958.                         <p className="page-link">5</p>
  959.                     </li>
  960.                 );
  961.                 pagination.push(
  962.                     <li key={"..."} className="page-item">
  963.                         <p className="page-link text-muted">...</p>
  964.                     </li>
  965.                 );
  966.                 pagination.push(
  967.                     <li key={page.totalNumberOfPages} className="page-item" onClick={this.goToLastPage}>
  968.                         <p className="page-link">{page.totalNumberOfPages}</p>
  969.                     </li>
  970.                 );
  971.                 pagination.push(
  972.                     <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  973.                         <p className="page-link">Next</p>
  974.                     </li>
  975.                 );
  976.                 pagination.push(
  977.                     <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  978.                         <p className="page-link">&raquo;</p>
  979.                     </li>
  980.                 );
  981.                 return pagination;
  982.             }
  983.             else if (4 - 1 < currentPage && currentPage < page.totalNumberOfPages - 1) {
  984.                 pagination.push(
  985.                     <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  986.                         <p className="page-link">&laquo;</p>
  987.                     </li>
  988.                 );
  989.                 pagination.push(
  990.                     <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  991.                         <p className="page-link">Prev</p>
  992.                     </li>
  993.                 );
  994.                 pagination.push(
  995.                     <li key={1} className="page-item" onClick={this.goToFirstPage}>
  996.                         <p className="page-link">1</p>
  997.                     </li>
  998.                 );
  999.                 pagination.push(
  1000.                     <li key={"...1"} className="page-item">
  1001.                         <p className="page-link text-muted">...</p>
  1002.                     </li>
  1003.                 );
  1004.  
  1005.                 pagination.push(
  1006.                     <li key={currentPage} className="page-item" onClick={this.goToPreviousPage}>
  1007.                         <p className="page-link">{currentPage}</p>
  1008.                     </li>
  1009.                 );
  1010.                 pagination.push(
  1011.                     <li key={currentPage+1} className="page-item active">
  1012.                         <p className="page-link">{currentPage+1}</p>
  1013.                     </li>
  1014.                 );
  1015.                 //CHECK
  1016.                 if (currentPage + 1 === (page.totalNumberOfPages - 1) - 1) {
  1017.                     pagination.push(
  1018.                         <li key={(page.totalNumberOfPages - 1)} className="page-item" onClick={this.goToNextPage}>
  1019.                             <p className="page-link">{(page.totalNumberOfPages - 1)}</p>
  1020.                         </li>
  1021.                     );
  1022.                     pagination.push(
  1023.                         <li key={page.totalNumberOfPages} className="page-item" onClick={this.goToLastPage}>
  1024.                             <p className="page-link">{page.totalNumberOfPages}</p>
  1025.                         </li>
  1026.                     );
  1027.                 }
  1028.                 else if (currentPage + 1 < (page.totalNumberOfPages - 1) - 1) {
  1029.                     pagination.push(
  1030.                         <li key={currentPage+2} className="page-item" onClick={this.goToNextPage}>
  1031.                             <p className="page-link">{currentPage+2}</p>
  1032.                         </li>
  1033.                     );
  1034.                     pagination.push(
  1035.                         <li key={"...2"} className="page-item">
  1036.                             <p className="page-link text-muted">...</p>
  1037.                         </li>
  1038.                     );
  1039.                     pagination.push(
  1040.                         <li key={page.totalNumberOfPages} className="page-item" onClick={this.goToLastPage}>
  1041.                             <p className="page-link">{page.totalNumberOfPages}</p>
  1042.                         </li>
  1043.                     );
  1044.                 }
  1045.                 else if (currentPage + 1 > (page.totalNumberOfPages - 1) - 1) {
  1046.                     pagination.push(
  1047.                         <li key={page.totalNumberOfPages} className="page-item" onClick={this.goToLastPage}>
  1048.                             <p className="page-link">{page.totalNumberOfPages}</p>
  1049.                         </li>
  1050.                     );
  1051.                 }
  1052.                 //END CHECK
  1053.                 pagination.push(
  1054.                     <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  1055.                         <p className="page-link">Next</p>
  1056.                     </li>
  1057.                 );
  1058.                 pagination.push(
  1059.                     <li key={"last"} className="page-item" onClick={this.goToLastPage}>
  1060.                         <p className="page-link">&raquo;</p>
  1061.                     </li>
  1062.                 );
  1063.                 return pagination;
  1064.             }
  1065.             else if (currentPage === (page.totalNumberOfPages - 1)-1) {
  1066.                 pagination.push(
  1067.                     <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  1068.                         <p className="page-link">&laquo;</p>
  1069.                     </li>
  1070.                 );
  1071.                 pagination.push(
  1072.                     <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  1073.                         <p className="page-link">Prev</p>
  1074.                     </li>
  1075.                 );
  1076.                 pagination.push(
  1077.                     <li key={1} className="page-item" onClick={this.goToFirstPage}>
  1078.                         <p className="page-link">1</p>
  1079.                     </li>
  1080.                 );
  1081.                 pagination.push(
  1082.                     <li key={"..."} className="page-item">
  1083.                         <p className="page-link text-muted">...</p>
  1084.                     </li>
  1085.                 );
  1086.                 pagination.push(
  1087.                     <li key={currentPage} className="page-item" onClick={this.goToPreviousPage}>
  1088.                         <p className="page-link">{currentPage}</p>
  1089.                     </li>
  1090.                 );
  1091.                 pagination.push(
  1092.                     <li key={currentPage+1} className="page-item active">
  1093.                         <p className="page-link">{currentPage+1}</p>
  1094.                     </li>
  1095.                 );
  1096.                 pagination.push(
  1097.                     <li key={currentPage+2} className="page-item" onClick={this.goToLastPage}>
  1098.                         <p className="page-link">{currentPage+2}</p>
  1099.                     </li>
  1100.                 );
  1101.                 pagination.push(
  1102.                     <li key={"next"} className="page-item" onClick={this.goToNextPage}>
  1103.                         <p className="page-link">Next</p>
  1104.                     </li>
  1105.                 );
  1106.             }
  1107.             else if (currentPage === (page.totalNumberOfPages -1)) {
  1108.                 pagination.push(
  1109.                     <li key={"first"} className="page-item" onClick={this.goToFirstPage}>
  1110.                         <p className="page-link">&laquo;</p>
  1111.                     </li>
  1112.                 );
  1113.                 pagination.push(
  1114.                     <li key={"prev"} className="page-item" onClick={this.goToPreviousPage}>
  1115.                         <p className="page-link">Prev</p>
  1116.                     </li>
  1117.                 );
  1118.                 pagination.push(
  1119.                     <li key={1} className="page-item" onClick={this.goToFirstPage}>
  1120.                         <p className="page-link">1</p>
  1121.                     </li>
  1122.                 );
  1123.                 pagination.push(
  1124.                     <li key={"..."} className="page-item">
  1125.                         <p className="page-link text-muted">...</p>
  1126.                     </li>
  1127.                 );
  1128.                 pagination.push(
  1129.                     <li key={(page.totalNumberOfPages -1)} className="page-item" onClick={this.goToPreviousPage}>
  1130.                         <p className="page-link">{(page.totalNumberOfPages -1)}</p>
  1131.                     </li>
  1132.                 );
  1133.                 pagination.push(
  1134.                     <li key={(page.totalNumberOfPages)} className="page-item active">
  1135.                         <p className="page-link">{(page.totalNumberOfPages)}</p>
  1136.                     </li>
  1137.                 );
  1138.             }
  1139.         }
  1140.         return pagination;
  1141.     }
  1142.  
  1143.     render() {
  1144.  
  1145.         const {page, currentPage} = this.state;
  1146.  
  1147.         let pagination = this.buildPagination(page, currentPage);
  1148.  
  1149.  
  1150.         return (
  1151.             <ul className="pagination">
  1152.                 {pagination}
  1153.             </ul>
  1154.         );
  1155.     }
  1156. }
  1157.  
  1158. export default UserPagination;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement