"use client"; import { useState } from "react"; import Link from "next/link"; import PostFilterItems from "./post-filter/PostFilterItems"; const BlogItems = () => { const [currentPage, setCurrentPage] = useState(1); const [totalPages, setTotalPages] = useState(1); const postsPerPage = 6; const handlePageChange = (page: number) => { if (page >= 1 && page <= totalPages) { setCurrentPage(page); // Scroll to top of posts section window.scrollTo({ top: 0, behavior: 'smooth' }); } }; const handleTotalPagesChange = (total: number) => { setTotalPages(total); }; // Generate page numbers to display const getPageNumbers = () => { const pages: (number | string)[] = []; const maxPagesToShow = 5; if (totalPages <= maxPagesToShow) { // Show all pages if total is small for (let i = 1; i <= totalPages; i++) { pages.push(i); } } else { // Show first page pages.push(1); // Calculate range around current page let startPage = Math.max(2, currentPage - 1); let endPage = Math.min(totalPages - 1, currentPage + 1); // Add ellipsis after first page if needed if (startPage > 2) { pages.push('...'); } // Add pages around current page for (let i = startPage; i <= endPage; i++) { pages.push(i); } // Add ellipsis before last page if needed if (endPage < totalPages - 1) { pages.push('...'); } // Show last page if (totalPages > 1) { pages.push(totalPages); } } return pages; }; return (

Latest Company Insights

{totalPages > 1 && (
  • {getPageNumbers().map((page, index) => (
  • {typeof page === 'number' ? ( ) : ( {page} )}
  • ))}
)}
); }; export default BlogItems;