import s from './ProductSidebar.module.css' import { useAddItem } from '@framework/cart' import { FC, useEffect, useState } from 'react' import { ProductOptions } from '@components/product' import type { Product } from '@commerce/types/product' import { Button, Text, Rating, Collapse, useUI } from '@components/ui' import { getProductVariant, selectDefaultOptionFromProduct, SelectedOptions, } from '../helpers' interface ProductSidebarProps { product: Product className?: string } const ProductSidebar: FC = ({ product, className }) => { const addItem = useAddItem() const { openSidebar, setSidebarView } = useUI() const [loading, setLoading] = useState(false) const [selectedOptions, setSelectedOptions] = useState({}) useEffect(() => { selectDefaultOptionFromProduct(product, setSelectedOptions) }, [product]) const variant = getProductVariant(product, selectedOptions) const addToCart = async () => { setLoading(true) try { await addItem({ productId: String(product.id), variantId: String(variant ? variant.id : product.variants[0]?.id), }) setSidebarView('CART_VIEW') openSidebar() setLoading(false) } catch (err) { setLoading(false) } } return (
36 reviews
{process.env.COMMERCE_CART_ENABLED && ( )}
This is a limited edition production run. Printing starts when the drop ends. This is a limited edition production run. Printing starts when the drop ends. Reminder: Bad Boys For Life. Shipping may take 10+ days due to COVID-19.
) } export default ProductSidebar