import { useState } from 'react' import { X, Plus, Minus } from 'lucide-react' export default function ProductModal({ product, onClose, onAdd }) { const [quantity, setQuantity] = useState(1) const [selectedOptions, setSelectedOptions] = useState([]) const basePrice = product.digital_price ?? product.base_price const hasDiscount = product.digital_discount > 0 && !product.digital_price const displayPrice = hasDiscount ? basePrice * (1 - product.digital_discount / 100) : basePrice function toggleOption(opt) { setSelectedOptions(prev => prev.find(o => o.id === opt.id) ? prev.filter(o => o.id !== opt.id) : [...prev, opt] ) } const optionsTotal = selectedOptions.reduce((s, o) => s + (o.price || 0), 0) const lineTotal = (displayPrice + optionsTotal) * quantity return (
{/* Image */} {(product.digital_image_url || product.image_url) && ( {product.digital_name )}

{product.digital_name || product.name}

{product.digital_description && (

{product.digital_description}

)}
{/* Price */}
€{displayPrice.toFixed(2)} {hasDiscount && ( €{basePrice.toFixed(2)} )} {hasDiscount && ( -{product.digital_discount}% )}
{/* Quick options */} {product.quick_options?.length > 0 && (

Options

{product.quick_options.map(opt => { const active = selectedOptions.find(o => o.id === opt.id) return ( ) })}
)} {/* Quantity */}
Quantity
{quantity}
{/* Add to cart */} {product.digital_available ? ( ) : (
Currently unavailable
)}
) }