"use client"; import React, { useContext, useState } from "react"; import { Plus, Minus } from "lucide-react"; import ProductContext from "@/app/contexts/productContext"; import { backendUrl } from "@/utils/axios"; import { useCurrency } from "@/app/contexts/currencyContext"; import Link from "next/link"; import Image from "next/image"; function ProductDetails({ productId }) { const [quantity, setQuantity] = useState(1); const [selectedSize, setSelectedSize] = useState(null); const [selectedDesign, setSelectedDesign] = useState(null); const [termsAccepted, setTermsAccepted] = useState(false); const { products, cartFn } = useContext(ProductContext); const { formatPrice, isLoading } = useCurrency(); const product = products?.find((pr) => pr.id == productId); React.useEffect(() => { if (product && product.variants?.length > 0) { setSelectedSize(product.variants[0]?.size?.size_name || ""); setSelectedDesign(product.design_associations?.[0]?.design?.id || ""); } }, [product]); if (!product) return null; const hasVariants = product.variants?.length > 0; const hasDesigns = product.design_associations?.length > 0; const selectedVariant = hasVariants ? product.variants.find((v) => v.size.size_name === selectedSize) : null; const currentPrice = selectedVariant?.price || product.price || 0; const designPrice = hasDesigns ? product.design_associations.find((d) => d.design.id === selectedDesign) ?.design.design_price || 0 : 0; const totalPrice = currentPrice + designPrice; return (
Subcategory: {product.product_subcategory.subcategory_name}
)}