"use client"; import { MapPin, X } from "lucide-react"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; interface Purchase { customerName: string; customerLocation: string; productName: string; productImage: string; } const DEFAULT_PURCHASES: Purchase[] = [ { customerName: "رضا", customerLocation: "مشهد", productName: "هدفون پریمیوم", productImage: "/block-media/shadcnblocks/block/ecommerce/electronics/Modern-White-Headphones-1.png", }, { customerName: "نازنین", customerLocation: "تبریز", productName: "کیف چرم", productImage: "/block-media/shadcnblocks/block/placeholder-1.svg", }, { customerName: "امیر", customerLocation: "کرمان", productName: "کفش ورزشی", productImage: "/block-media/shadcnblocks/block/placeholder-2.svg", }, ]; interface LivePurchase2Props { purchases?: Purchase[]; autoRotate?: boolean; rotateInterval?: number; className?: string; } const LivePurchase2 = ({ purchases = DEFAULT_PURCHASES, autoRotate = true, rotateInterval = 6000, className, }: LivePurchase2Props) => { const [currentIndex, setCurrentIndex] = useState(0); const [isVisible, setIsVisible] = useState(false); const [isDismissed, setIsDismissed] = useState(false); useEffect(() => { if (isDismissed) return; const showTimer = setTimeout(() => { setIsVisible(true); }, 2000); return () => clearTimeout(showTimer); }, [isDismissed]); useEffect(() => { if (!autoRotate || purchases.length <= 1 || !isVisible || isDismissed) return; const timer = setInterval(() => { setIsVisible(false); setTimeout(() => { setCurrentIndex((prev) => (prev + 1) % purchases.length); setIsVisible(true); }, 500); }, rotateInterval); return () => clearInterval(timer); }, [autoRotate, rotateInterval, purchases.length, isVisible, isDismissed]); const handleDismiss = () => { setIsVisible(false); setIsDismissed(true); }; if (isDismissed) return null; const current = purchases[currentIndex]; return (
{current.customerName}{" "} {current.productName}{" "} را خرید کرد