diff --git a/src/components/sections/product/ProductCardOne.tsx b/src/components/sections/product/ProductCardOne.tsx index 46aadb2..67d273b 100644 --- a/src/components/sections/product/ProductCardOne.tsx +++ b/src/components/sections/product/ProductCardOne.tsx @@ -3,6 +3,9 @@ import { memo, useCallback } from "react"; import { useRouter } from "next/navigation"; import { ArrowUpRight } from "lucide-react"; +"use client"; + +import { useState } from "react"; import CardStack from "@/components/cardStack/CardStack"; import ProductImage from "@/components/shared/ProductImage"; import { cls, shouldUseInvertedText } from "@/lib/utils"; @@ -63,6 +66,95 @@ interface ProductCardItemProps { cardPriceClassName?: string; } +const ProductCardItemFlip = memo(({ + product, + shouldUseLightText, + cardClassName = "", + imageClassName = "", + cardNameClassName = "", + cardPriceClassName = "", +}: ProductCardItemProps) => { + const [isFlipped, setIsFlipped] = useState(false); + + return ( +
setIsFlipped(true)} + onMouseLeave={() => setIsFlipped(false)} + > +
+ {/* Front side */} +
+
+ +
+
+

+ {product.name} +

+

+ ${product.price} +

+
+
+ + {/* Back side */} +
+
+

+ {product.name} +

+

+ {product.description || "Premium quality product with exceptional craftsmanship"} +

+
+

+ ${product.price} +

+ {product.specs && ( +
    + {product.specs.map((spec, idx) => ( +
  • + • {spec} +
  • + ))} +
+ )} +
+
+
+
+
+ ); +}); + +ProductCardItemFlip.displayName = "ProductCardItemFlip"; + const ProductCardItem = memo(({ product, shouldUseLightText, @@ -70,6 +162,26 @@ const ProductCardItem = memo(({ imageClassName = "", cardNameClassName = "", cardPriceClassName = "", +}: ProductCardItemProps) => { + return ( + + ); +}); + +const ProductCardItemOld = memo(({ + product, + shouldUseLightText, + cardClassName = "", + imageClassName = "", + cardNameClassName = "", + cardPriceClassName = "", }: ProductCardItemProps) => { return (