import Link from "next/link"; import React from "react"; import { useCart } from "@/contexts/CartContext"; import { useFavorites } from "@/contexts/FavoritesContext"; import toast from "react-hot-toast"; interface TopSalesItemProps { image: string; price: string; title: string; brand: string; article?: string; productId?: string; onAddToCart?: (e: React.MouseEvent) => void; discount?: string; // Новый пропс для лейбла/скидки } const TopSalesItem: React.FC = ({ image, price, title, brand, article, productId, onAddToCart, discount = 'Топ продаж', // По умолчанию как раньше }) => { const { addItem } = useCart(); const { addToFavorites, removeFromFavorites, isFavorite, favorites } = useFavorites(); const isItemFavorite = isFavorite(productId, undefined, article, brand); const parsePrice = (priceStr: string): number => { const cleanPrice = priceStr.replace(/[^\d.,]/g, '').replace(',', '.'); return parseFloat(cleanPrice) || 0; }; const handleAddToCart = (e: React.MouseEvent) => { e.preventDefault(); e.stopPropagation(); if (onAddToCart) { onAddToCart(e); return; } try { if (!article || !brand) { toast.error('Недостаточно данных для добавления товара в корзину'); return; } const numericPrice = parsePrice(price); addItem({ name: title, brand: brand, article: article, description: title, price: numericPrice, quantity: 1, currency: 'RUB', image: image, isExternal: true }); toast.success('Товар добавлен в корзину'); } catch (error) { console.error('Ошибка добавления в корзину:', error); toast.error('Ошибка добавления товара в корзину'); } }; const handleFavoriteClick = (e: React.MouseEvent) => { e.preventDefault(); e.stopPropagation(); if (isItemFavorite) { const favoriteItem = favorites.find((fav: any) => { if (productId && fav.productId === productId) return true; if (fav.article === article && fav.brand === brand) return true; return false; }); if (favoriteItem) { removeFromFavorites(favoriteItem.id); } } else { const numericPrice = parsePrice(price); addToFavorites({ productId, name: title, brand: brand, article: article || '', price: numericPrice, currency: 'RUB', image: image }); toast.success('Товар добавлен в избранное'); } }; // Ссылка на карточку товара (если нужно) const cardUrl = article && brand ? `/card?article=${encodeURIComponent(article)}&brand=${encodeURIComponent(brand)}` : '/card'; return (
{title}
{discount}
{price}
{/*
oldPrice
*/}
{title}
{brand}
); }; export default TopSalesItem;