import { useEffect, useId, useState } from 'react' import { ImageOff, Pencil, Percent, Sparkles, Trash2 } from 'lucide-react' import { useLocale } from '@meshkee/dashboard-ui' import { useT } from '../i18n/useT' import { formatVariantCount, type StoreProductListing, } from '../utils/storeProductGroups' import { StoreItemPrice } from './StoreItemPrice' import { Tooltip } from './Tooltip' import styles from './StoreItemCard.module.css' interface StoreItemCardProps { listing: StoreProductListing onOpen: (listing: StoreProductListing) => void onEdit: (listing: StoreProductListing) => void onDiscount: (listing: StoreProductListing) => void onFestival: (listing: StoreProductListing) => void onRemove: (listing: StoreProductListing) => void onAddToCart: (listing: StoreProductListing) => void removeTooltip?: string } function GradientPlusIcon({ gradientId }: { gradientId: string }) { return ( ) } export function StoreItemCard({ listing, onOpen, onEdit, onDiscount, onFestival, onRemove, onAddToCart, removeTooltip, }: StoreItemCardProps) { const t = useT() const { locale } = useLocale() const isFa = locale === 'fa' const plusGradientId = `add-cart-gradient-${useId().replace(/:/g, '')}` const removeLabel = removeTooltip ?? t('storeItems.card.remove') const primaryName = isFa ? listing.productNameFa || listing.productTitle : listing.productTitle const secondaryName = isFa ? listing.productNameFa ? listing.productTitle : '' : listing.productNameFa const imageSrc = listing.productImage?.trim() || '' const [imageFailed, setImageFailed] = useState(false) const showImage = Boolean(imageSrc) && !imageFailed useEffect(() => { setImageFailed(false) }, [imageSrc]) return (
e.stopPropagation()}>
{listing.variantCount > 0 ? ( <> ) : null}
{listing.variantCount > 0 ? ( ) : null}
) }