"use client"; import Autoplay from "embla-carousel-autoplay"; import { AnimatePresence, motion } from "framer-motion"; import React, { useMemo } from "react"; import { useCallback } from "react"; import { Carousel, type CarouselApi, CarouselContent, CarouselItem, } from "@/components/ui/carousel"; import { useIsMobile } from "@/hooks/use-mobile"; import { cn } from "@/lib/utils"; interface Hero228Props { className?: string; } const Hero228 = ({ className }: Hero228Props) => { const [api, setApi] = React.useState(); const [current, setCurrent] = React.useState(0); React.useEffect(() => { if (!api) return; api.on("select", () => { setCurrent(api.selectedScrollSnap()); }); }, [api]); const isMobile = useIsMobile(); const testimonials = [ { id: 1, image: "/block-media/shadcnblocks/block/lummi/person1.jpeg", name: "جان دو", }, { id: 2, image: "/block-media/shadcnblocks/block/lummi/person2.jpeg", name: "جین اسمیت", }, { id: 3, image: "/block-media/shadcnblocks/block/lummi/person3.jpeg", name: "جان جانسون", }, { id: 4, image: "/block-media/shadcnblocks/block/lummi/person4.jpeg", name: "سارا ویلیام", }, { id: 5, image: "/block-media/shadcnblocks/block/lummi/person5.jpeg", name: "مایکل براون", }, { id: 6, image: "/block-media/shadcnblocks/block/lummi/bw3.jpeg", name: "امیلی دیویس", }, { id: 7, image: "/block-media/shadcnblocks/block/lummi/bw11.jpeg", name: "جیسون وایت", }, ]; const getRotation = useCallback( (index: number) => { if (index === current) return "md:-rotate-45 md:translate-x-40 md:scale-75 md:relative"; if (index === current + 1) return "md:rotate-0 md:z-10 md:relative"; if (index === current + 2) return "md:rotate-45 md:-translate-x-40 md:scale-75 md:relative"; }, [current], ); const scrollbarBars = useMemo( () => [...Array(40)].map((_, item) => ( )), [], ); return (

همه ابزارهای لازم برای{" "} خلاق و توسعه سریع

صدها بلاک و کامپوننت آماده مبتنی بر رابط کاربری، استایل‌دهی مدرن و ری یو آی که مستقیماً در پروژه‌های شما قابل استفاده هستند.

{Array.from({ length: isMobile ? testimonials.length : testimonials.length + 2, }).map((_, index) => (
تصویر نمونه
))}
{scrollbarBars}
{testimonials[current]?.name}
{scrollbarBars}
); }; export { Hero228 };