"use client" import React, { useState } from "react" import { BlogCard } from "../reuseableUI/blogCard" import ReactPaginate from "react-paginate" import { ChevronDownIcon } from "@/app/utils/svgs/chevronDownIcon" interface BlogPost { id: string title: string slug: string excerpt?: string date?: string } interface BlogListProps { blogs: BlogPost[] pageSize?: number } export default function BlogList({ blogs, pageSize = 9 }: BlogListProps) { const [currentPage, setCurrentPage] = useState(0) const totalPages = Math.ceil(blogs.length / pageSize) // Get current page blogs const startIndex = currentPage * pageSize const endIndex = startIndex + pageSize const currentBlogs = blogs.slice(startIndex, endIndex) const handlePageChange = ({ selected }: { selected: number }) => { setCurrentPage(selected) // Scroll to top of blog grid window.scrollTo({ top: 0, behavior: "smooth" }) } if (blogs.length === 0) { return (

No blogs available

Check back later for new blog posts.

) } return ( <>
{currentBlogs.map((blog) => ( ))}
{totalPages > 1 && (
{ChevronDownIcon} Prev

} nextLabel={

Next {ChevronDownIcon}

} renderOnZeroPageCount={undefined} containerClassName="flex items-center justify-center gap-2 font-secondary" pageClassName="list-none" pageLinkClassName="px-3 py-2 !text-base bg-[var(--color-secondary-200)] text-gray-900 hover:opacity-80" previousClassName="list-none" previousLinkClassName="px-3 py-2 !text-base bg-[var(--color-secondary-200)] text-gray-700 hover:opacity-80 flex items-center gap-1" nextClassName="list-none" nextLinkClassName="px-3 py-2 !text-base bg-[var(--color-secondary-200)] text-gray-700 hover:opacity-80 flex items-center gap-1" activeClassName="list-none" activeLinkClassName="px-3 py-2 !text-base !bg-[var(--color-primary-600)] text-white border border-[var(--color-primary-600)]" disabledClassName="opacity-50 pointer-events-none" breakLabel={"..."} breakLinkClassName="px-2 !text-base text-gray-500" />
)} ) }