"use client"; import { ArrowLeft, ArrowRight } from "lucide-react"; import { startTransition, useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import type { CarouselApi } from "@/components/ui/carousel"; import { Carousel, CarouselContent, CarouselItem, } from "@/components/ui/carousel"; import { cn } from "@/lib/utils"; const carouselItems = [ { image: "/block-media/external/unsplash/photo-1589100787575-fad1dcaa9d17.jpg", title: "واکنش‌گرا", description: "قالب‌های ما با رویکرد mobile-first ساخته شده‌اند تا وب‌سایت شما در همه دستگاه‌ها و اندازه‌های صفحه زیبا به نظر برسد.", }, { image: "/block-media/external/unsplash/photo-1698516923130-8845104b6224.jpg", title: "کد تمیز", description: "هر قالب با کد تمیز و ساختارمند و مطابق بهترین شیوه‌ها طراحی شده تا سفارشی‌سازی و نگهداری ساده باشد.", }, { image: "/block-media/external/unsplash/photo-1647517649508-855580038bfd.jpg", title: "کپی و پیست", description: "قالب‌ها برای کپی و پیست آسان طراحی شده‌اند تا بتوانید سریعاً کامپوننت‌ها و قابلیت‌ها را در پروژه‌های خود پیاده کنید.", }, { image: "/block-media/external/unsplash/photo-1586869871566-d8e41dd50318.jpg", title: "به‌روزرسانی آسان", description: "به‌روزرسانی و نگهداری منظم تضمین می‌کند قالب شما همیشه با استانداردها و امنیت وب به‌روز بماند.", }, ]; interface Gallery14Props { className?: string; } const Gallery14 = ({ className }: Gallery14Props) => { const [api, setApi] = useState(); const [current, setCurrent] = useState(1); const [canScrollPrev, setCanScrollPrev] = useState(false); const [canScrollNext, setCanScrollNext] = useState(false); useEffect(() => { if (!api) { return; } const updateSelection = () => { startTransition(() => { setCurrent(api.selectedScrollSnap() + 1); setCanScrollPrev(api.canScrollPrev()); setCanScrollNext(api.canScrollNext()); }); }; updateSelection(); api.on("select", updateSelection); return () => { api.off("select", updateSelection); }; }, [api]); useEffect(() => { if (!api) { return; } api.reInit(); }, [api]); return (

کمتر کد بزن.
سریع‌تر بساز.

با قالب‌های ما شروع کنید و مطابق نیاز خود سفارشی کنید.

{carouselItems.map((item, idx) => (
{item.title}

{item.title}. {item.description}

))}
{Array.from({ length: carouselItems.length }).map((_, index) => ( ))}
); }; export { Gallery14 };