'use client' import { useState } from 'react' import ProductCard from '@/components/shop/ProductCard' import { Product } from '@/types' import { Button } from '@/components/ui/button' interface ProductGridProps { products: Product[] categoryFilter?: string initialLoadCount?: number loadMoreCount?: number } export default function ProductGrid({ products, categoryFilter, initialLoadCount = 8, loadMoreCount = 4 }: ProductGridProps) { const [displayCount, setDisplayCount] = useState(initialLoadCount) const filteredProducts = categoryFilter ? products.filter(product => product.category.name.toLowerCase().includes(categoryFilter.toLowerCase()) || product.name.toLowerCase().includes(categoryFilter.toLowerCase()) ) : products const displayedProducts = filteredProducts.slice(0, displayCount) const hasMoreProducts = displayCount < filteredProducts.length const remainingProducts = filteredProducts.length - displayCount const loadMore = () => { setDisplayCount(prev => Math.min(prev + loadMoreCount, filteredProducts.length)) } const showLess = () => { setDisplayCount(initialLoadCount) } if (filteredProducts.length === 0) { return (
No products found in this category.
Check back soon for new products!
Showing {displayedProducts.length} of{' '} {filteredProducts.length} products