"use client"; import { useRouter } from "next/navigation"; import { ChevronRight } from "lucide-react"; import ProductCard from "@/features/home/components/ProductCard"; import { useCollectionProducts } from "@/features/collections/hooks/useCollections"; import type { Collection } from "@/lib/types/api"; import { Skeleton } from "@/components/ui/skeleton"; type Props = { collection: Collection; locale: string; }; export default function CollectionSection({ collection, locale }: Props) { const router = useRouter(); const { data: productsData, isLoading, isError, } = useCollectionProducts(collection.id); const handleTitleClick = () => { router.push(`/collections/${collection.slug}`); }; if (isLoading) { return (
{Array.from({ length: 10 }).map((_, i) => (
))}
); } if (isError) return null; // Hide section if no products if (!productsData?.data || productsData.data.length === 0) { return null; } const displayProducts = productsData?.data.slice(0, 10) || []; return (

{collection.name}

{displayProducts.map((product) => { const allImages = product.media ?.map( (m) => m.images_800x800 || m.images_720x720 || m.images_400x400 || m.thumbnail ) .filter(Boolean) || ["/placeholder-product.jpg"]; const formattedPrice = product.price_amount ? `${parseFloat(product.price_amount).toFixed(2)} TMT` : "Price not available"; return ( ); })}
); }