diff --git a/src/components/sections/product/ProductCardFour.tsx b/src/components/sections/product/ProductCardFour.tsx index 303ff14..3e752c7 100644 --- a/src/components/sections/product/ProductCardFour.tsx +++ b/src/components/sections/product/ProductCardFour.tsx @@ -2,6 +2,9 @@ import { memo, useCallback } from "react"; import { useRouter } from "next/navigation"; +"use client"; + +import { useState } from "react"; import CardStack from "@/components/cardStack/CardStack"; import ProductImage from "@/components/shared/ProductImage"; import { cls, shouldUseInvertedText } from "@/lib/utils"; @@ -68,7 +71,113 @@ interface ProductCardItemProps { actionButtonClassName?: string; } -const ProductCardItem = memo(({ +const FlipCard = memo(({ + product, + shouldUseLightText, + cardClassName = "", + imageClassName = "", + cardNameClassName = "", + cardPriceClassName = "", + cardVariantClassName = "", + actionButtonClassName = "", +}: ProductCardItemProps) => { + const [isFlipped, setIsFlipped] = useState(false); + + return ( +
setIsFlipped(true)} + onMouseLeave={() => setIsFlipped(false)} + > +
+ {/* Front Side - Product Image and Name */} +
+
+ {product.image && ( +
+ +
+ )} +
+

+ {product.name} +

+ {product.price && ( +

+ ${product.price} +

+ )} +
+
+
+ + {/* Back Side - Product Details */} +
+
+

+ {product.name} +

+ {product.description && ( +

+ {product.description} +

+ )} + {product.ingredients && ( +
+

Ingredients:

+

{product.ingredients}

+
+ )} +
+
+ {product.price && ( +

+ ${product.price} +

+ )} + +
+
+
+
+ ); +}); + +FlipCard.displayName = "FlipCard"; + +const ProductCardItemOriginal = memo(({ product, shouldUseLightText, cardClassName = "",