import React from "react"; import CatalogProductCard from "./CatalogProductCard"; import { useArticleImage } from "@/hooks/useArticleImage"; import { useCart } from "@/contexts/CartContext"; import { toast } from "react-hot-toast"; interface CartRecommendedProps { recommendedProducts?: any[]; isLoadingPrices?: boolean; } // Компонент для отдельной карточки рекомендуемого товара с реальным изображением const RecommendedProductCard: React.FC<{ item: any; isLoadingPrice: boolean; formatPrice: (price: number | null, isLoading: boolean) => string; }> = ({ item, isLoadingPrice, formatPrice }) => { const { imageUrl } = useArticleImage(item.artId, { enabled: !!item.artId }); const { addItem } = useCart(); // Если нет изображения, используем заглушку с иконкой (но не мокап-фотку) const displayImage = imageUrl || 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEwIiBoZWlnaHQ9IjE5MCIgdmlld0JveD0iMCAwIDIxMCAxOTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyMTAiIGhlaWdodD0iMTkwIiBmaWxsPSIjRjNGNEY2Ii8+CjxwYXRoIGQ9Ik04NSA5NUw5NSA4NUwxMjUgMTE1TDE0MCA5NUwxNjUgMTIwSDE2NVY5MEg0NVY5MEw4NSA5NVoiIGZpbGw9IiNEMUQ1REIiLz4KPGNpcmNsZSBjeD0iNzUiIGN5PSI3NSIgcj0iMTAiIGZpbGw9IiNEMUQ1REIiLz4KPHRleHQgeD0iMTA1IiB5PSIxNTAiIGZvbnQtZmFtaWx5PSJBcmlhbCIgZm9udC1zaXplPSIxMiIgZmlsbD0iIzlDQTNBRiIgdGV4dC1hbmNob3I9Im1pZGRsZSI+Tm8gaW1hZ2U8L3RleHQ+Cjwvc3ZnPgo='; // Обработчик добавления в корзину с тоастером const handleAddToCart = async (e: React.MouseEvent) => { e.preventDefault(); e.stopPropagation(); try { // Извлекаем цену как число const numericPrice = item.minPrice || 0; if (numericPrice <= 0) { toast.error('Цена товара не найдена'); return; } // Добавляем товар в корзину addItem({ productId: String(item.artId) || undefined, name: item.name || `${item.brand} ${item.articleNumber}`, description: item.name || `${item.brand} ${item.articleNumber}`, price: numericPrice, currency: 'RUB', quantity: 1, image: displayImage, brand: item.brand, article: item.articleNumber, supplier: 'AutoEuro', deliveryTime: '1 день', isExternal: true }); // Показываем успешный тоастер toast.success(