"use client"; import { motion } from "framer-motion"; import { useState, useRef } from "react"; import { useTranslations, useLocale } from "next-intl"; 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 t = useTranslations("BeforeAfterGallery"); 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 (
After
Before
{t("before")}
{t("after")}
{result.timeline}
{[1, 2, 3, 4, 5].map((star) => ( ))}
({result.reviewCount.toLocaleString()})
{t("verified")}
); } export default function BeforeAfterGallery() { const t = useTranslations("BeforeAfterGallery"); const locale = useLocale(); const [selectedIndex, setSelectedIndex] = useState(0); const goToPrev = () => { setSelectedIndex(prev => prev === 0 ? results.length - 1 : prev - 1); }; const goToNext = () => { setSelectedIndex(prev => prev === results.length - 1 ? 0 : prev + 1); }; return (
{t("realResults")}

{t("seeTransformation")}

{results.map((result, index) => ( ))}
{results.map((_, index) => (
{t("startTransformation")}
); }