"use client"; import { useEffect, useRef, useState } from "react"; import { cn } from "@/lib/utils"; const sections = [ { subTitle: "داشبورد هوشمند", title: "گردش کار خود را ساده کنید", description: "با رابط شهودی ما گردش کار خود را بهینه کنید. به ابزارها و قابلیت‌های قدرتمندی دسترسی داشته باشید که برای افزایش بهره‌وری و کارایی طراحی شده‌اند.", image: "/block-media/shadcnblocks/block/placeholder-dark-1.svg", }, { subTitle: "مدیریت تیم", title: "همکاری بی‌نقص با تیم‌ها", description: "همکاری روان در سراسر سازمان را ممکن کنید. منابع را با کنترل‌های دسترسی و تنظیمات مجوز قابل سفارشی‌سازی، به‌صورت کارآمد به اشتراک بگذارید.", image: "/block-media/shadcnblocks/block/placeholder-dark-2.svg", }, { subTitle: "تحلیل پیشرفته", title: "گزینه‌های پیکربندی انعطاف‌پذیر", description: "تجربه خود را با گزینه‌های پیکربندی پیشرفته شخصی‌سازی کنید. پلتفرم را با راهکار چندمنظوره ما مطابق نیازهای خاص خود تطبیق دهید.", image: "/block-media/shadcnblocks/block/placeholder-dark-3.svg", }, { subTitle: "ابزارهای خودکارسازی", title: "تجربه کاربری ساده‌شده", description: "رابط کاربری دوستانه‌ای را تجربه کنید که برای کارایی طراحی شده است. بلاک‌های شهودی ما کارهای پیچیده را ساده و در دسترس می‌کنند.", image: "/block-media/shadcnblocks/block/placeholder-dark-1.svg", }, ]; interface Timeline2Props { className?: string; } const Timeline2 = ({ className }: Timeline2Props) => { const [activeIndex, setActiveIndex] = useState(0); const sectionRefs = useRef<(HTMLDivElement | null)[]>([]); useEffect(() => { const handleScroll = () => { const viewportHeight = window.innerHeight; const viewportCenter = viewportHeight / 2; let closestSection = 0; let closestDistance = Infinity; sectionRefs.current.forEach((section, index) => { if (section) { const rect = section.getBoundingClientRect(); const sectionCenter = rect.top + rect.height / 2; const distance = Math.abs(sectionCenter - viewportCenter); if (distance < closestDistance) { closestDistance = distance; closestSection = index; } } }); setActiveIndex(closestSection); }; window.addEventListener("scroll", handleScroll); handleScroll(); return () => window.removeEventListener("scroll", handleScroll); }, []); return (

گردش کار خود را با راهکار ما متحول کنید

{sections.map((section, index) => (
{ sectionRefs.current[index] = el; }} className="flex flex-col gap-4 md:h-[50vh]" >
{section.title}

{section.subTitle}

{section.title}

{section.description}

))}
{sections[sections.length {sections.map((item, index) => (
{item.title}
))}
); }; export { Timeline2 };