import { Link } from 'react-router-dom'; import styled from 'styled-components'; import { useEffect, useState } from 'react'; import PaginationIcon from '../../../assets/img/icon/icon-pagination.png'; const Pagination = ({ postsPerPage, totalPosts, setCurrentPage, currentPage, pageLimit }) => { const pageNumbers = []; const maxPage = Math.ceil(totalPosts / postsPerPage); const [blockNum, setBlockNum] = useState(0); for (let i = 1; i <= maxPage; i++) { pageNumbers.push(i); } const v = blockNum * pageLimit; let pArr = pageNumbers.slice(v, pageLimit + v); useEffect(() => { setBlockNum(0); }, [postsPerPage, totalPosts]); const firstPage = () => { setBlockNum(0); setCurrentPage(1); }; const lastPage = () => { setBlockNum(Math.ceil(maxPage / pageLimit) - 1); setCurrentPage(maxPage); }; const prePage = () => { if (currentPage <= 1) return; else if (currentPage - 1 <= pageLimit * blockNum) { setBlockNum(n => n - 1); } setCurrentPage(n => n - 1); }; const nextPage = () => { if (currentPage >= maxPage) return; else if (pageLimit * (blockNum + 1) <= currentPage) { setBlockNum(n => n + 1); } setCurrentPage(n => n + 1); }; const clickPage = number => { setCurrentPage(number); }; return ( <>