"use client"; import { motion } from "framer-motion"; import { useState, useRef } from "react"; const results = [ { id: 1, name: "Facial Skin Transformation", beforeImg: "https://minio-api.nodecrew.me/saleor/marketing/use_case_2.webp", afterImg: "https://minio-api.nodecrew.me/saleor/marketing/use_case_2_1.webp", timeline: "4-6 Weeks", rating: 5, reviewCount: 2847, }, { id: 2, name: "Skin Radiance Transformation", beforeImg: "https://minio-api.nodecrew.me/saleor/marketing/use_case_3.webp", afterImg: "https://minio-api.nodecrew.me/saleor/marketing/use_case_3_1.webp", timeline: "6-8 Weeks", rating: 5, reviewCount: 1856, }, ]; function BeforeAfterSlider({ result }: { result: typeof results[0] }) { const [sliderPosition, setSliderPosition] = useState(50); const containerRef = useRef(null); const handleMouseMove = (e: React.MouseEvent) => { if (!containerRef.current) return; const rect = containerRef.current.getBoundingClientRect(); const x = ((e.clientX - rect.left) / rect.width) * 100; setSliderPosition(Math.max(0, Math.min(100, x))); }; const handleTouchMove = (e: React.TouchEvent) => { if (!containerRef.current) return; const rect = containerRef.current.getBoundingClientRect(); const x = ((e.touches[0].clientX - rect.left) / rect.width) * 100; setSliderPosition(Math.max(0, Math.min(100, x))); }; return (
{/* Before/After Slider */}
{/* After Image */} After - Smooth skin {/* Before Image (clipped) */}
Before - Wrinkled skin
{/* Slider Handle */}
{/* Labels */}
BEFORE
AFTER
{/* Timeline and Rating */}
{result.timeline}
{[1, 2, 3, 4, 5].map((star) => ( ))}
({result.reviewCount.toLocaleString()})
{/* Verified Badge */}
Verified
); } export default function BeforeAfterGallery() { return (
Real Results

See the Transformation

{/* Two transformations side by side */}
{results.map((result, index) => ( ))}
{/* CTA */} Start Your Transformation
); }