"use client"; import { ArrowLeft, ArrowRight, Code, GitBranch, Sparkle } from "lucide-react"; import { startTransition, useEffect, useState } from "react"; import { Badge } from "@/components/ui/badge"; 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 sections = [ { img: "/block-media/shadcnblocks/block/placeholder-1.svg", title: "طراحی", text: "رابط و تجربه کاربری را با تیم طراحی ما از ایده اولیه تا نمونه نهایی بسازید.", logo: , }, { img: "/block-media/shadcnblocks/block/placeholder-2.svg", title: "توسعه", text: "پیاده‌سازی سریع و قابل اعتماد با زیرساخت پیشرفته توسعه و استانداردهای تیم.", logo: , }, { img: "/block-media/shadcnblocks/block/placeholder-3.svg", title: "انتشار", text: "با اطمینان محصول خود را منتشر کنید و به کاربران واقعی تحویل دهید.", logo: , }, ]; interface Gallery9Props { className?: string; } const Gallery9 = ({ className }: Gallery9Props) => { const [api, setApi] = useState(); const [current, setCurrent] = useState(1); const [canScrollPrev, setCanScrollPrev] = useState(false); const [canScrollNext, setCanScrollNext] = useState(false); useEffect(() => { if (!api) return; const updateCurrent = () => { startTransition(() => { setCurrent(api.selectedScrollSnap() + 1); setCanScrollPrev(api.canScrollPrev()); setCanScrollNext(api.canScrollNext()); }); }; startTransition(() => { setCurrent(api.selectedScrollSnap() + 1); setCanScrollPrev(api.canScrollPrev()); setCanScrollNext(api.canScrollNext()); }); api.on("select", updateCurrent); return () => { api.off("select", updateCurrent); }; }, [api]); useEffect(() => { if (!api) { return; } api.reInit(); }, [api]); return (

زمان بستن حساب‌هایتان را کوتاه کنید

راهکاری یکپارچه برای تیم‌های مالی و عملیات
{sections.map((item, index) => ( {item.title}
{item.logo}
{item.title}
{item.text}
))}
{sections.map((section, index) => (
api?.scrollTo(index)} className="flex cursor-pointer flex-col gap-2" >
{section.logo}
{section.title}
{section.text}
))}
{current.toLocaleString("fa-IR")} /{" "} {sections.length.toLocaleString("fa-IR")}
); }; export { Gallery9 };