{
    "componentChunkName": "component---src-templates-blog-post-js",
    "path": "/implement-pagination-search-and-filter-in-a-react-app-part-3/",
    "result": {"data":{"markdownRemark":{"html":"<h6 id=\"this-blog-post-is-part-of-a-series-you-must-complete-part-1--part-2-before-continuing-here\" style=\"position:relative;\"><a href=\"#this-blog-post-is-part-of-a-series-you-must-complete-part-1--part-2-before-continuing-here\" aria-label=\"this blog post is part of a series you must complete part 1  part 2 before continuing here permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>This blog post is part of a series. You must complete <a href=\"https://hemanta.io/implement-pagination-search-and-filter-in-a-react-app-part-1/\">part-1</a> &#x26; <a href=\"https://hemanta.io/implement-pagination-search-and-filter-in-a-react-app-part-2/\">part-2</a> before continuing here.</h6>\n<p>In part-2, we implemented search functionality in our application. The last feature that is pending is pagination, which we are going to implement in this post.</p>\n<p>Inside the <del>components</del> folder, create a file called <del>Pagination.js</del>.</p>\n<p>We will use Bootstrap's pagination component. In addition, we will also show <del>Previous</del> and <del>Next</del> links.</p>\n<div class=\"gatsby-code-title\">src/components/Pagination.js</div>\n<pre class=\"grvsc-container synthwave-84\" data-language=\"jsx\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"1\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">React</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;react&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"2\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">_</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;lodash&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"3\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"4\"></span><span class=\"grvsc-source\"><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">Pagination</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> ({</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"5\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk3\">noOfPosts</span><span class=\"mtk1\">,</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"6\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk3\">postsPerPage</span><span class=\"mtk1\">,</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"7\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk3\">onPageChange</span><span class=\"mtk1\">,</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"8\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk3\">currentPage</span><span class=\"mtk1\">,</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"9\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk3\">onPreviousClick</span><span class=\"mtk1\">,</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"10\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk3\">onNextClick</span><span class=\"mtk1\">,</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"11\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">}) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"12\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"13\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk3\">noOfPages</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk9\">Math</span><span class=\"mtk1\">.</span><span class=\"mtk6\">ceil</span><span class=\"mtk1\">(</span><span class=\"mtk3\">noOfPosts</span><span class=\"mtk1\">.</span><span class=\"mtk3\">length</span><span class=\"mtk1\"> </span><span class=\"mtk10\">/</span><span class=\"mtk1\"> </span><span class=\"mtk3\">postsPerPage</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"14\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk3\">pages</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk3\">_</span><span class=\"mtk1\">.</span><span class=\"mtk6\">range</span><span class=\"mtk1\">(</span><span class=\"mtk7\">1</span><span class=\"mtk1\">, </span><span class=\"mtk3\">noOfPages</span><span class=\"mtk1\"> </span><span class=\"mtk10\">+</span><span class=\"mtk1\"> </span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"15\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"16\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">if</span><span class=\"mtk1\"> (</span><span class=\"mtk3\">noOfPages</span><span class=\"mtk1\"> </span><span class=\"mtk10\">===</span><span class=\"mtk1\"> </span><span class=\"mtk7\">1</span><span class=\"mtk1\">) </span><span class=\"mtk10\">return</span><span class=\"mtk1\"> </span><span class=\"mtk5\">null</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"17\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"18\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">return</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"19\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">nav</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"20\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">ul</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;pagination&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"21\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk10\">{</span><span class=\"mtk3\">currentPage</span><span class=\"mtk1\"> </span><span class=\"mtk10\">!==</span><span class=\"mtk1\"> </span><span class=\"mtk7\">1</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"22\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">li</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;page-item&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"23\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">a</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"24\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;page-link&quot;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"25\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">style</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk1\">{ </span><span class=\"mtk3\">cursor</span><span class=\"mtk14\">:</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;pointer&quot;</span><span class=\"mtk1\"> }</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"26\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onClick</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">onPreviousClick</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"27\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"28\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              Previous</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"29\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">a</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"30\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">li</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"31\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        )</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"32\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"33\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk10\">{</span><span class=\"mtk3\">pages</span><span class=\"mtk1\">.</span><span class=\"mtk6\">map</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">page</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"34\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">li</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"35\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">key</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">page</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"36\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">page</span><span class=\"mtk1\"> </span><span class=\"mtk10\">===</span><span class=\"mtk1\"> </span><span class=\"mtk3\">currentPage</span><span class=\"mtk1\"> </span><span class=\"mtk10\">?</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;page-item active&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk10\">:</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;page-item&quot;</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"37\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"38\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">a</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"39\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;page-link&quot;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"40\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">style</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk1\">{ </span><span class=\"mtk3\">cursor</span><span class=\"mtk14\">:</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;pointer&quot;</span><span class=\"mtk1\"> }</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"41\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onClick</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk1\">() </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk6\">onPageChange</span><span class=\"mtk1\">(</span><span class=\"mtk3\">page</span><span class=\"mtk1\">)</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"42\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"43\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">{</span><span class=\"mtk3\">page</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"44\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">a</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"45\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">li</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"46\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        ))</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"47\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk10\">{</span><span class=\"mtk3\">currentPage</span><span class=\"mtk1\"> </span><span class=\"mtk10\">!==</span><span class=\"mtk1\"> </span><span class=\"mtk3\">noOfPages</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"48\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">li</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;page-item&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"49\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">a</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"50\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;page-link&quot;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"51\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">style</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk1\">{ </span><span class=\"mtk3\">cursor</span><span class=\"mtk14\">:</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;pointer&quot;</span><span class=\"mtk1\"> }</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"52\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onClick</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">onNextClick</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"53\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"54\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              Next</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"55\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">a</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"56\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">li</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"57\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        )</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"58\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">ul</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"59\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">nav</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"60\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  );</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"61\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">};</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"62\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"63\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">export</span><span class=\"mtk1\"> </span><span class=\"mtk10\">default</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Pagination</span><span class=\"mtk1\">;</span></span></span></code></pre>\n<p>Let's understand the code we have written inside the <del>Pagination</del> component.</p>\n<p><strong>LINE 13-14</strong>: We determine the total no of links in the pagination by dividing the total no. of posts with the no. of posts that we decide to display on a single page. We have 10 posts in total and we have decided to display 4 posts per page. So we end up with 2.5 (10/4) links, which doesn't make any sense. So, we round this number upwards to its nearest integer using the <del>Math.ceil()</del> method. <del>Math.ceil(10/4)</del> gives us 3, which we then convert to an array using the <del>_.range</del> method from <del>lodash</del>.</p>\n<p><strong>LINE 16</strong>: If we have only one page in our application (<em>which will be true if we have, let's say, 3 posts in total</em>), we will not show any pagination.</p>\n<p>The rest of the code should be easy to understand. Note that we decide to show the <del>Previous</del> link whenever we click on any page except page no 1. Similarly, we show the <del>Next</del> link whenever we click on any page except the last page.</p>\n<p>Next, we will render the <del>Pagination</del> component inside the <del>App</del> component. Add the highlighted code snippets in the <del>App.js</del> file.</p>\n<div class=\"gatsby-code-title\">src/App.js</div>\n<pre class=\"grvsc-container grvsc-has-line-highlighting synthwave-84\" data-language=\"jsx\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"1\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">React</span><span class=\"mtk1\">, { </span><span class=\"mtk3\">useState</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;react&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"2\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Posts</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/Posts&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"3\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Categories</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/Categories&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"4\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">useDispatch</span><span class=\"mtk1\">, </span><span class=\"mtk3\">useSelector</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;react-redux&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"5\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">filterPosts</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/blog-state&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"6\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">SearchBar</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/SearchBar&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"7\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Pagination</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/Pagination&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"8\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"9\"></span><span class=\"grvsc-source\"><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">App</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> () </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"10\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">posts</span><span class=\"mtk1\"> } </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useSelector</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">state</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk3\">state</span><span class=\"mtk1\">.</span><span class=\"mtk7\">blog</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"11\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"12\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> [</span><span class=\"mtk3\">filter</span><span class=\"mtk1\">, </span><span class=\"mtk3\">setFilter</span><span class=\"mtk1\">] </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useState</span><span class=\"mtk1\">(</span><span class=\"mtk5\">false</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"13\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> [</span><span class=\"mtk3\">currentCategory</span><span class=\"mtk1\">, </span><span class=\"mtk3\">setCurrentCategory</span><span class=\"mtk1\">] </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useState</span><span class=\"mtk1\">(</span><span class=\"mtk16\">&quot;&quot;</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"14\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> [</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk1\">, </span><span class=\"mtk3\">setSearchQuery</span><span class=\"mtk1\">] </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useState</span><span class=\"mtk1\">(</span><span class=\"mtk16\">&quot;&quot;</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"15\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> [</span><span class=\"mtk3\">currentPage</span><span class=\"mtk1\">, </span><span class=\"mtk3\">setCurrentPage</span><span class=\"mtk1\">] </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useState</span><span class=\"mtk1\">(</span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"16\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> [</span><span class=\"mtk3\">postsPerPage</span><span class=\"mtk1\">, </span><span class=\"mtk3\">setPostsPerPage</span><span class=\"mtk1\">] </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useState</span><span class=\"mtk1\">(</span><span class=\"mtk7\">4</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"17\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"18\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk4 mtki\">// Category filter</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"19\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk3\">dispatch</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useDispatch</span><span class=\"mtk1\">();</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"20\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"21\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">categoryChangeHandler</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> (</span><span class=\"mtk3 mtki\">category</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"22\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setCurrentCategory</span><span class=\"mtk1\">(</span><span class=\"mtk3\">category</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"23\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setCurrentPage</span><span class=\"mtk1\">(</span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"24\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk10\">if</span><span class=\"mtk1\"> (</span><span class=\"mtk3\">category</span><span class=\"mtk1\"> </span><span class=\"mtk10\">===</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;All Categories&quot;</span><span class=\"mtk1\">) {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"25\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">setFilter</span><span class=\"mtk1\">(</span><span class=\"mtk5\">false</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"26\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    } </span><span class=\"mtk10\">else</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"27\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">setSearchQuery</span><span class=\"mtk1\">(</span><span class=\"mtk16\">&quot;&quot;</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"28\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">dispatch</span><span class=\"mtk1\">(</span><span class=\"mtk6\">filterPosts</span><span class=\"mtk1\">(</span><span class=\"mtk3\">category</span><span class=\"mtk1\">));</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"29\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">setFilter</span><span class=\"mtk1\">(</span><span class=\"mtk5\">true</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"30\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    }</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"31\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  };</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"32\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"33\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk4 mtki\">//End of category filter</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"34\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"35\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk4 mtki\">//Search</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"36\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"37\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">searchChangeHandler</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> (</span><span class=\"mtk3 mtki\">query</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"38\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setCurrentCategory</span><span class=\"mtk1\">(</span><span class=\"mtk16\">&quot;&quot;</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"39\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setFilter</span><span class=\"mtk1\">(</span><span class=\"mtk5\">false</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"40\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setSearchQuery</span><span class=\"mtk1\">(</span><span class=\"mtk3\">query</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"41\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  };</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"42\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"43\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk4 mtki\">// End of search</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"44\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"45\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk4 mtki\">// Pagination</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"46\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"47\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">previousClickHandler</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> () </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"48\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setCurrentPage</span><span class=\"mtk1\">(</span><span class=\"mtk3\">currentPage</span><span class=\"mtk1\"> </span><span class=\"mtk10\">-</span><span class=\"mtk1\"> </span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"49\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  };</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"50\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"51\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">nextClickHandler</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> () </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"52\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setCurrentPage</span><span class=\"mtk1\">(</span><span class=\"mtk3\">currentPage</span><span class=\"mtk1\"> </span><span class=\"mtk10\">+</span><span class=\"mtk1\"> </span><span class=\"mtk7\">1</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"53\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  };</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"54\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"55\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">pageChangeHandler</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> (</span><span class=\"mtk3 mtki\">page</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"56\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">setCurrentPage</span><span class=\"mtk1\">(</span><span class=\"mtk3\">page</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"57\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  };</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"58\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"59\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk4 mtki\">// End of pagination</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"60\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"61\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">return</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"62\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;container&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"63\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;row row-one justify-content-center&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"64\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">SearchBar</span><span class=\"mtk1\"> </span><span class=\"mtk10\">value</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk10\">}</span><span class=\"mtk1\"> </span><span class=\"mtk10\">onChange</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">searchChangeHandler</span><span class=\"mtk10\">}</span><span class=\"mtk1\"> </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"65\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"66\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;row justify-content-center mb-3&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"67\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;title col-md-6&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"68\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">Posts</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"69\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">filter</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">filter</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"70\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">searchQuery</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"71\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"72\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"73\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;category col-md-2&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"74\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">Categories</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"75\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">currentCategory</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">currentCategory</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"76\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">categoryChangeHandler</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">categoryChangeHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"77\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"78\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"79\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"80\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;row&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"81\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;col offset-md-2&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"82\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk10\">{!</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> </span><span class=\"mtk10\">!</span><span class=\"mtk3\">filter</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"83\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">Pagination</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"84\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">currentPage</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">currentPage</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"85\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">postsPerPage</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">postsPerPage</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"86\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">noOfPosts</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">posts</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"87\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onPreviousClick</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">previousClickHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"88\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onNextClick</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">nextClickHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"89\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onPageChange</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">pageChangeHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"90\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"91\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          )</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"92\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"93\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"94\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"95\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  );</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"96\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">};</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"97\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">export</span><span class=\"mtk1\"> </span><span class=\"mtk10\">default</span><span class=\"mtk1\"> </span><span class=\"mtk3\">App</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"98\"></span><span class=\"grvsc-source\"></span></span></code></pre>\n<p>We keep track of the current page in the <del>currentPage</del> variable. Clicking on the <del>Next</del> and <del>Previous</del> links will trigger <del>nextPageHandler</del> and <del>previousPageHandler</del> functions respectively, which will then add or subtract 1 from the value of <del>currentPage</del>.</p>\n<p>Note that we don't show any pagination if we have applied a category filter or our search query is not an empty string.</p>\n<p>With this, we have the pagination component ready.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 697px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/08684f70e0f1a137eaec76ebe1e5afed/11663/paginate.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 69.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAIAAACgpqunAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABsklEQVQoz5WSy3KjMBBF/f+/NL8wqywMektgII4wkhAWRg80RXCSieNZzK1eqFR9dPt26ZC/a13XGNP6Dz00H3bks1KK1k6LDymtP+sJfPP5FvIS8xzy7HNc7yM8WK559d67qwsh7LeHEEJ3HtrXXtRd076dpepez23beu/fn/iWSCllrY0xppTuMEKIUooxgRBQyhhjx6Ks61PTtG9SMs6dm3fY2NFO9ss5pcQZE1UFIEIII0wARFxUGJPtDGB9aj5WtV76QWudUooxbnCMkXNRAogwRghzLo5FyRgvCsC5AADaadptc85KqXnepvhrbIyPJaCcYYxFVVPKECZFCSllhDJtzGdmY8wO35299xBtfUJskxdFCSEi7zzBmDB+Wxbn5pRSztkvfk97d44xiKoiZIMJ2dZGGWecn5pG8O25EsJjUUrZ5x86BB8YF4RSiLbMTdtVVQUAhJgaY4ZBaW0GNUjZhxgf4Rh8d2IQoqIsEcKYEEIZgJAQqrTuL5dhGKSUSpsn39O49OvFjeMke+XmWWvt3Dxdr9oYM9rLZdDaaG3MOD6BpyX/FjmlHGL+X/0BvLgaJD4BxuUAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Pagination\"\n        title=\"Pagination\"\n        src=\"/static/08684f70e0f1a137eaec76ebe1e5afed/11663/paginate.png\"\n        srcset=\"/static/08684f70e0f1a137eaec76ebe1e5afed/56d15/paginate.png 200w,\n/static/08684f70e0f1a137eaec76ebe1e5afed/d9f49/paginate.png 400w,\n/static/08684f70e0f1a137eaec76ebe1e5afed/11663/paginate.png 697w\"\n        sizes=\"(max-width: 697px) 100vw, 697px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<p>However, the pagination component lacks functionality. That's because we are mapping through the <del>posts</del> array which contains 10 blog posts. To fix this, we will paginate the <del>posts</del> array.</p>\n<p>In the <del>components</del> folder, create a folder named <del>utils</del> and inside the <del>utils</del> folder, create a file named <del>paginate.js</del>.</p>\n<div class=\"gatsby-code-title\">src/utils/paginate.js</div>\n<pre class=\"grvsc-container synthwave-84\" data-language=\"jsx\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"1\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">_</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;lodash&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"2\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"3\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">export</span><span class=\"mtk1\"> </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">paginate</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> (</span><span class=\"mtk3 mtki\">totalPosts</span><span class=\"mtk1\">, </span><span class=\"mtk3 mtki\">pageNumber</span><span class=\"mtk1\">, </span><span class=\"mtk3 mtki\">pageSize</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"4\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk3\">startIndex</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> (</span><span class=\"mtk3\">pageNumber</span><span class=\"mtk1\"> </span><span class=\"mtk10\">-</span><span class=\"mtk1\"> </span><span class=\"mtk7\">1</span><span class=\"mtk1\">) </span><span class=\"mtk10\">*</span><span class=\"mtk1\"> </span><span class=\"mtk3\">pageSize</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"5\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">return</span><span class=\"mtk1\"> </span><span class=\"mtk6\">_</span><span class=\"mtk1\">(</span><span class=\"mtk3\">totalPosts</span><span class=\"mtk1\">).</span><span class=\"mtk6\">slice</span><span class=\"mtk1\">(</span><span class=\"mtk3\">startIndex</span><span class=\"mtk1\">).</span><span class=\"mtk6\">take</span><span class=\"mtk1\">(</span><span class=\"mtk3\">pageSize</span><span class=\"mtk1\">).</span><span class=\"mtk6\">value</span><span class=\"mtk1\">();</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"6\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">};</span></span></span></code></pre>\n<p>Then, we import the <del>paginate()</del> function inside the <del>Posts.js</del> component and create a <del>paginatedPosts</del> array by passing in the required arguments to the <del>paginate()</del> function.</p>\n<p>Add the highlighted code snippets in the <del>Posts.js</del> file.</p>\n<div class=\"gatsby-code-title\">src/components/Posts.js</div>\n<pre class=\"grvsc-container grvsc-has-line-highlighting synthwave-84\" data-language=\"jsx\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"1\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">React</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;react&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"2\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">useSelector</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;react-redux&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"3\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">paginate</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;../utils/paginate&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"4\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"5\"></span><span class=\"grvsc-source\"><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">Posts</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> ({ </span><span class=\"mtk3 mtki\">filter</span><span class=\"mtk1\">, </span><span class=\"mtk3 mtki\">searchQuery</span><span class=\"mtk1\">, </span><span class=\"mtk3 mtki\">pageNumber</span><span class=\"mtk1\">, </span><span class=\"mtk3 mtki\">pageSize</span><span class=\"mtk1\"> }) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"6\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">posts</span><span class=\"mtk1\"> } </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useSelector</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">state</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk3\">state</span><span class=\"mtk1\">.</span><span class=\"mtk7\">blog</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"7\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">filteredPosts</span><span class=\"mtk1\"> } </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">useSelector</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">state</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk3\">state</span><span class=\"mtk1\">.</span><span class=\"mtk7\">blog</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"8\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"9\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">let</span><span class=\"mtk1\"> </span><span class=\"mtk3\">searchResult</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"10\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">if</span><span class=\"mtk1\"> (</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk1\">) {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"11\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk3\">searchResult</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk3\">posts</span><span class=\"mtk1\">.</span><span class=\"mtk6\">filter</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">post</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"12\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk3\">post</span><span class=\"mtk1\">.</span><span class=\"mtk3\">title</span><span class=\"mtk1\">.</span><span class=\"mtk6\">toLowerCase</span><span class=\"mtk1\">().</span><span class=\"mtk6\">includes</span><span class=\"mtk1\">(</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk1\">.</span><span class=\"mtk6\">toLowerCase</span><span class=\"mtk1\">())</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"13\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    );</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"14\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  }</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"15\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"16\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk3\">paginatedPosts</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> </span><span class=\"mtk6\">paginate</span><span class=\"mtk1\">(</span><span class=\"mtk3\">posts</span><span class=\"mtk1\">, </span><span class=\"mtk3\">pageNumber</span><span class=\"mtk1\">, </span><span class=\"mtk3\">pageSize</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"17\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"18\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">return</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"19\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"20\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">p</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"21\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        showing</span><span class=\"mtk10\">{</span><span class=\"mtk16\">&quot; &quot;</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"22\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk10\">{</span><span class=\"mtk3\">filter</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"23\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk10\">?</span><span class=\"mtk1\"> </span><span class=\"mtk3\">filteredPosts</span><span class=\"mtk1\">.</span><span class=\"mtk3\">length</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"24\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk10\">:</span><span class=\"mtk1\"> </span><span class=\"mtk3\">searchQuery</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"25\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk10\">?</span><span class=\"mtk1\"> </span><span class=\"mtk3\">searchResult</span><span class=\"mtk1\">.</span><span class=\"mtk3\">length</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"26\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk10\">:</span><span class=\"mtk1\"> </span><span class=\"mtk3\">paginatedPosts</span><span class=\"mtk1\">.</span><span class=\"mtk3\">length</span><span class=\"mtk10\">}{</span><span class=\"mtk16\">&quot; &quot;</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"27\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        posts of total </span><span class=\"mtk10\">{</span><span class=\"mtk3\">posts</span><span class=\"mtk1\">.</span><span class=\"mtk3\">length</span><span class=\"mtk10\">}</span><span class=\"mtk1\"> posts</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"28\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">p</span><span class=\"mtk6\">&gt;</span><span class=\"mtk10\">{</span><span class=\"mtk16\">&quot; &quot;</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"29\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"30\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk10\">{!</span><span class=\"mtk3\">filter</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"31\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk10\">!</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"32\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk3\">paginatedPosts</span><span class=\"mtk1\">.</span><span class=\"mtk6\">map</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">post</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"33\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">article</span><span class=\"mtk1\"> </span><span class=\"mtk10\">key</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">post</span><span class=\"mtk1\">.</span><span class=\"mtk7\">id</span><span class=\"mtk10\">}</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"34\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">h2</span><span class=\"mtk6\">&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk10\">{</span><span class=\"mtk3\">post</span><span class=\"mtk1\">.</span><span class=\"mtk7\">title</span><span class=\"mtk10\">}</span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">h2</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"35\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">article</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"36\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          ))</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"37\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk10\">{</span><span class=\"mtk3\">filter</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"38\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk3\">filteredPosts</span><span class=\"mtk1\">.</span><span class=\"mtk6\">map</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">post</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"39\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">article</span><span class=\"mtk1\"> </span><span class=\"mtk10\">key</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">post</span><span class=\"mtk1\">.</span><span class=\"mtk7\">id</span><span class=\"mtk10\">}</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"40\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">h2</span><span class=\"mtk6\">&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk10\">{</span><span class=\"mtk3\">post</span><span class=\"mtk1\">.</span><span class=\"mtk7\">title</span><span class=\"mtk10\">}</span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">h2</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"41\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">article</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"42\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          ))</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"43\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk10\">{</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"44\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk3\">searchResult</span><span class=\"mtk1\">.</span><span class=\"mtk6\">map</span><span class=\"mtk1\">((</span><span class=\"mtk3 mtki\">post</span><span class=\"mtk1\">) </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"45\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">article</span><span class=\"mtk1\"> </span><span class=\"mtk10\">key</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">post</span><span class=\"mtk1\">.</span><span class=\"mtk7\">id</span><span class=\"mtk10\">}</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"46\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">h2</span><span class=\"mtk6\">&gt;</span><span class=\"mtk1\"> </span><span class=\"mtk10\">{</span><span class=\"mtk3\">post</span><span class=\"mtk1\">.</span><span class=\"mtk7\">title</span><span class=\"mtk10\">}</span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">h2</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"47\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">article</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"48\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          ))</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"49\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"50\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"51\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  );</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"52\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">};</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"53\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"54\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">export</span><span class=\"mtk1\"> </span><span class=\"mtk10\">default</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Posts</span><span class=\"mtk1\">;</span></span></span></code></pre>\n<p>Finally, we have to pass the <del>pageNumber</del> &#x26; <del>pageSize</del> props to the <del>Posts</del> component rendered inside the <del>App</del> component.</p>\n<p>Add the highlighted code snippets in the <del>App.js</del> file.</p>\n<div class=\"gatsby-code-title\">src/App.js</div>\n<pre class=\"grvsc-container grvsc-has-line-highlighting synthwave-84\" data-language=\"jsx\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"1\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">React</span><span class=\"mtk1\">, { </span><span class=\"mtk3\">useState</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;react&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"2\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Posts</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/Posts&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"3\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Categories</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/Categories&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"4\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">useDispatch</span><span class=\"mtk1\">, </span><span class=\"mtk3\">useSelector</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;react-redux&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"5\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> { </span><span class=\"mtk3\">filterPosts</span><span class=\"mtk1\"> } </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/blog-state&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"6\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">SearchBar</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/SearchBar&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"7\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">import</span><span class=\"mtk1\"> </span><span class=\"mtk3\">Pagination</span><span class=\"mtk1\"> </span><span class=\"mtk10\">from</span><span class=\"mtk1\"> </span><span class=\"mtk16\">&quot;./components/Pagination&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"8\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"9\"></span><span class=\"grvsc-source\"><span class=\"mtk10\">const</span><span class=\"mtk1\"> </span><span class=\"mtk6\">App</span><span class=\"mtk1\"> </span><span class=\"mtk12\">=</span><span class=\"mtk1\"> () </span><span class=\"mtk10\">=&gt;</span><span class=\"mtk1\"> {</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"10\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"11\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"12\"></span><span class=\"grvsc-source\"><span class=\"mtk4 mtki\">// rest of the code</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"13\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"14\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"15\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  </span><span class=\"mtk10\">return</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"16\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;container&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"17\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;row row-one justify-content-center&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"18\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">SearchBar</span><span class=\"mtk1\"> </span><span class=\"mtk10\">value</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk10\">}</span><span class=\"mtk1\"> </span><span class=\"mtk10\">onChange</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">searchChangeHandler</span><span class=\"mtk10\">}</span><span class=\"mtk1\"> </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"19\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"20\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;row justify-content-center mb-3&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"21\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;title col-md-6&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"22\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">Posts</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"23\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">filter</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">filter</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"24\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">searchQuery</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"25\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">pageNumber</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">currentPage</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line grvsc-line-highlighted\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"26\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">pageSize</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">postsPerPage</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"27\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"28\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"29\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;category col-md-2&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"30\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">Categories</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"31\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">currentCategory</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">currentCategory</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"32\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk10\">categoryChangeHandler</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">categoryChangeHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"33\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"34\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"35\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"36\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;row&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"37\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;</span><span class=\"mtk8\">div</span><span class=\"mtk1\"> </span><span class=\"mtk10\">className</span><span class=\"mtk12\">=</span><span class=\"mtk16\">&quot;col offset-md-2&quot;</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"38\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          </span><span class=\"mtk10\">{!</span><span class=\"mtk3\">searchQuery</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> </span><span class=\"mtk10\">!</span><span class=\"mtk3\">filter</span><span class=\"mtk1\"> </span><span class=\"mtk10\">&amp;&amp;</span><span class=\"mtk1\"> (</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"39\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">&lt;</span><span class=\"mtk9\">Pagination</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"40\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">currentPage</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">currentPage</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"41\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">postsPerPage</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">postsPerPage</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"42\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">noOfPosts</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">posts</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"43\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onPreviousClick</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">previousClickHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"44\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onNextClick</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">nextClickHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"45\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">              </span><span class=\"mtk10\">onPageChange</span><span class=\"mtk12\">=</span><span class=\"mtk10\">{</span><span class=\"mtk3\">pageChangeHandler</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"46\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">            </span><span class=\"mtk6\">/&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"47\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">          )</span><span class=\"mtk10\">}</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"48\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">        </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"49\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">      </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"50\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">    </span><span class=\"mtk6\">&lt;/</span><span class=\"mtk8\">div</span><span class=\"mtk6\">&gt;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"51\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">  );</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"52\"></span><span class=\"grvsc-source\"><span class=\"mtk1\">};</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"53\"></span><span class=\"grvsc-source\"></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-gutter-pad\"></span><span class=\"grvsc-gutter grvsc-line-number\" aria-hidden=\"true\" data-content=\"54\"></span><span class=\"grvsc-source\"><span class=\"mtk8\">export</span><span class=\"mtk1\"> </span><span class=\"mtk10\">default</span><span class=\"mtk1\"> </span><span class=\"mtk3\">App</span><span class=\"mtk1\">;</span></span></span></code></pre>\n<p>Now, our pagination component functions as expected.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 711px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/b536815c292ed9d8835212782ac89b4c/5e9f9/paginateFunctional.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 51%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABS0lEQVQoz21SuU7DQBDlb/kBCmp+hQYJREWRipKOhjiRz1z27nrjI7JsjPeYGbROAsrxtJpiNG/ezLy9oVMgktYGAPACAKgMKUODIWVd8Q2dA7/7XhsLgJfvrNSRtcFBodKoNA3aibsJTuBK05ruXvD+FW8f8eENtd2TreMMZoyaLgT27aju4OmjnXjw/IkTDyyM5N2uTrNU5KIsi7Io5HbLhcjzXAgppWya5tgEQDc4NISGCInQkZfL1Zc336RpEEZ+ELjoh2EYhWEUxYnSh00AURZV2/UGSBt3UUfOGJ/N/WSxSpLFdOpFcRIE4Xq9SVPmzeZxHC9Xq67r3ORV9TMM4wxwOFhdV0LkUjDOGeO8rCrGecZYLreMccaFy3KhtWnb1hg72nZUVsYt9O67e9K4zVUgorX2z4mDsrEIFrMamx6ufo9/u059/gXh6jy0/rwipAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Pagination\"\n        title=\"Pagination\"\n        src=\"/static/b536815c292ed9d8835212782ac89b4c/5e9f9/paginateFunctional.png\"\n        srcset=\"/static/b536815c292ed9d8835212782ac89b4c/56d15/paginateFunctional.png 200w,\n/static/b536815c292ed9d8835212782ac89b4c/d9f49/paginateFunctional.png 400w,\n/static/b536815c292ed9d8835212782ac89b4c/5e9f9/paginateFunctional.png 711w\"\n        sizes=\"(max-width: 711px) 100vw, 711px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n  </a>\n    </span></p>\n<h6 id=\"learn-to-implement-server-side-pagination-in-a-react--express-application-in-my-blog-post-here\" style=\"position:relative;\"><a href=\"#learn-to-implement-server-side-pagination-in-a-react--express-application-in-my-blog-post-here\" aria-label=\"learn to implement server side pagination in a react  express application in my blog post here permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Learn to implement server-side pagination in a React + Express application in my blog post <a href=\"https://hemanta.io/implement-server-side-pagination-in-react-with-a-nodejs-backend-api/\">here</a>.</h6>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    position: relative;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n    line-height: 1.4;\n  }\n  \n  .grvsc-code {\n    display: table;\n  }\n  \n  .grvsc-line {\n    display: table-row;\n    box-sizing: border-box;\n    width: 100%;\n    position: relative;\n  }\n  \n  .grvsc-line > * {\n    position: relative;\n  }\n  \n  .grvsc-gutter-pad {\n    display: table-cell;\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  .grvsc-gutter {\n    display: table-cell;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter::before {\n    content: attr(data-content);\n  }\n  \n  .grvsc-source {\n    display: table-cell;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-source:empty::after {\n    content: ' ';\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter + .grvsc-source {\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  /* Line transformer styles */\n  \n  .grvsc-has-line-highlighting > .grvsc-code > .grvsc-line::before {\n    content: ' ';\n    position: absolute;\n    width: 100%;\n  }\n  \n  .grvsc-line-diff-add::before {\n    background-color: var(--grvsc-line-diff-add-background-color, rgba(0, 255, 60, 0.2));\n  }\n  \n  .grvsc-line-diff-del::before {\n    background-color: var(--grvsc-line-diff-del-background-color, rgba(255, 0, 20, 0.2));\n  }\n  \n  .grvsc-line-number {\n    padding: 0 2px;\n    text-align: right;\n    opacity: 0.7;\n  }\n  \n  .synthwave-84 { background-color: #262335; }\n  .synthwave-84 .mtki { font-style: italic; }\n  .synthwave-84 .mtk8 { color: #72F1B8; }\n  .synthwave-84 .mtk1 { color: #FFFFFF; }\n  .synthwave-84 .mtk3 { color: #FF7EDB; }\n  .synthwave-84 .mtk10 { color: #FEDE5D; }\n  .synthwave-84 .mtk16 { color: #FF8B39; }\n  .synthwave-84 .mtk6 { color: #36F9F6; }\n  .synthwave-84 .mtk12 { color: #FFFFFFEE; }\n  .synthwave-84 .mtk9 { color: #FE4450; }\n  .synthwave-84 .mtk7 { color: #2EE2FA; }\n  .synthwave-84 .mtk5 { color: #F97E72; }\n  .synthwave-84 .mtk14 { color: #B6B1B1; }\n  .synthwave-84 .mtk4 { color: #848BBD; }\n  .synthwave-84 .grvsc-line-highlighted::before {\n    background-color: var(--grvsc-line-highlighted-background-color, rgba(255, 255, 255, 0.1));\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, rgba(255, 255, 255, 0.5));\n  }\n</style>","frontmatter":{"title":"Implement Pagination, Search & Filter in a React App - Part 3 - Pagination","date":"2021-06-25"}}},"pageContext":{"slug":"/implement-pagination-search-and-filter-in-a-react-app-part-3/","prev":{"fields":{"slug":"/usage-of-the-useref-hook-in-react/"},"frontmatter":{"modules":null}},"next":{"fields":{"slug":"/implement-pagination-search-and-filter-in-a-react-app-part-2/"},"frontmatter":{"modules":null}}}},
    "staticQueryHashes": ["3159585216"]}