import React, { useEffect, useState, useMemo } from 'react'; import { Helmet } from 'react-helmet'; import { useNavigate } from 'react-router-dom'; import { useProductStore } from '@/store/productStore'; import { useCategoryStore } from '@/store/categoryStore'; import ProductCard from '@/components/ProductCard'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Skeleton } from '@/components/ui/skeleton'; import { Search, Filter, PackageX } from 'lucide-react'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { trackPageView } from '@/lib/facebookPixel'; const ProductsPage = () => { const { products, fetchProducts, isLoading } = useProductStore(); const { categories, fetchCategories } = useCategoryStore(); const [searchQuery, setSearchQuery] = useState(''); const [selectedCategory, setSelectedCategory] = useState('all'); useEffect(() => { trackPageView(); fetchProducts({ itemsPerPage: 50 }); fetchCategories(); }, []); // Performance Optimization: Memoize filtering logic const filteredProducts = useMemo(() => { return products.filter(product => { const matchesSearch = product.name.toLowerCase().includes(searchQuery.toLowerCase()); const matchesCategory = selectedCategory === 'all' || product.category_id === selectedCategory; return matchesSearch && matchesCategory; }); }, [products, searchQuery, selectedCategory]); return ( <> পণ্য সমূহ | মিনি মার্ভেলস
{/* Header */}

আমাদের পণ্যসমূহ

সেরা মানের খেলনা এবং শিক্ষামূলক সামগ্রী

setSearchQuery(e.target.value)} className="pl-9 bg-white" />
{/* Product Grid */}
{isLoading ? ( // Loading Skeletons Array.from({ length: 8 }).map((_, i) => (
)) ) : filteredProducts.length > 0 ? ( filteredProducts.map((product) => ( )) ) : ( // Empty State

কোন পণ্য পাওয়া যায়নি

আপনার অনুসন্ধানের সাথে মেলে এমন কোনো পণ্য নেই। অনুগ্রহ করে অন্য কীওয়ার্ড দিয়ে চেষ্টা করুন বা ক্যাটাগরি পরিবর্তন করুন।

)}
); }; export default ProductsPage;