"use client"; import React, { useEffect, useRef, useState } from "react"; import { Separator } from "@/components/ui/separator"; import { cn } from "@/lib/utils"; const FEATURES = [ { id: "ai-analytics", title: "تقسیم خودکار سرنخ", image: "/block-media/shadcnblocks/block/placeholder-1.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "cloud-integration", title: "گزارش عملکرد فروش", image: "/block-media/shadcnblocks/block/placeholder-2.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "real-time-monitoring", title: "مدیریت قرارداد", image: "/block-media/shadcnblocks/block/placeholder-3.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "data-visualization", title: "تاریخچه تعاملات", image: "/block-media/shadcnblocks/block/placeholder-4.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "automated-workflows", title: "پروفایل ۳۶۰ درجه مشتری", image: "/block-media/shadcnblocks/block/placeholder-5.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "team-collaboration", title: "اتوماسیون مراحل فروش", image: "/block-media/shadcnblocks/block/placeholder-6.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "api-integration", title: "پیش‌بینی درآمد", image: "/block-media/shadcnblocks/block/placeholder-1.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "custom-dashboards", title: "یادآور پیگیری هوشمند", image: "/block-media/shadcnblocks/block/placeholder-2.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "security-features", title: "تقسیم خودکار سرنخ", image: "/block-media/shadcnblocks/block/placeholder-3.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "performance-metrics", title: "گزارش عملکرد فروش", image: "/block-media/shadcnblocks/block/placeholder-4.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "machine-learning", title: "مدیریت قرارداد", image: "/block-media/shadcnblocks/block/placeholder-5.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "data-encryption", title: "تاریخچه تعاملات", image: "/block-media/shadcnblocks/block/placeholder-6.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "automated-testing", title: "پروفایل ۳۶۰ درجه مشتری", image: "/block-media/shadcnblocks/block/placeholder-1.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "cicd-pipeline", title: "اتوماسیون مراحل فروش", image: "/block-media/shadcnblocks/block/placeholder-2.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "version-control", title: "پیش‌بینی درآمد", image: "/block-media/shadcnblocks/block/placeholder-3.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "code-analysis", title: "یادآور پیگیری هوشمند", image: "/block-media/shadcnblocks/block/placeholder-4.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "database-management", title: "تقسیم خودکار سرنخ", image: "/block-media/shadcnblocks/block/placeholder-5.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "load-balancing", title: "گزارش عملکرد فروش", image: "/block-media/shadcnblocks/block/placeholder-6.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "container-orchestration", title: "مدیریت قرارداد", image: "/block-media/shadcnblocks/block/placeholder-1.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "microservices", title: "تاریخچه تعاملات", image: "/block-media/shadcnblocks/block/placeholder-2.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "edge-computing", title: "پروفایل ۳۶۰ درجه مشتری", image: "/block-media/shadcnblocks/block/placeholder-3.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "serverless-functions", title: "اتوماسیون مراحل فروش", image: "/block-media/shadcnblocks/block/placeholder-4.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "devops-tools", title: "پیش‌بینی درآمد", image: "/block-media/shadcnblocks/block/placeholder-5.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "infrastructure-as-code", title: "یادآور پیگیری هوشمند", image: "/block-media/shadcnblocks/block/placeholder-6.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "authentication-services", title: "تقسیم خودکار سرنخ", image: "/block-media/shadcnblocks/block/placeholder-1.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "message-queues", title: "گزارش عملکرد فروش", image: "/block-media/shadcnblocks/block/placeholder-2.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "service-discovery", title: "مدیریت قرارداد", image: "/block-media/shadcnblocks/block/placeholder-3.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "api-gateway", title: "تاریخچه تعاملات", image: "/block-media/shadcnblocks/block/placeholder-4.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, { id: "caching-solutions", title: "پروفایل ۳۶۰ درجه مشتری", image: "/block-media/shadcnblocks/block/placeholder-5.svg", imageAlt: "نمای پایپ‌لاین فروش", }, { id: "event-streaming", title: "اتوماسیون مراحل فروش", image: "/block-media/shadcnblocks/block/placeholder-6.svg", imageAlt: "پروفایل یکپارچه مشتری", }, { id: "graphql-support", title: "پیش‌بینی درآمد", image: "/block-media/shadcnblocks/block/placeholder-1.svg", imageAlt: "داشبورد مدیریت ارتباط با مشتری", }, ]; interface Feature199Props { className?: string; } const Feature199 = ({ className }: Feature199Props) => { const [activeFeature, setActiveFeature] = useState(0); const containerRef = useRef(null); const [isMobile, setIsMobile] = useState(false); useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth < 768); }; checkMobile(); window.addEventListener("resize", checkMobile); return () => window.removeEventListener("resize", checkMobile); }, []); useEffect(() => { if (!isMobile || !containerRef.current) return; const handleScroll = () => { const container = containerRef.current; if (!container) return; const items = container.getElementsByClassName("feature-item"); const containerMiddle = window.innerHeight * 0.6; let closestItem: number | null = null; let closestDistance = Infinity; Array.from(items).forEach((item, index) => { const rect = item.getBoundingClientRect(); const distance = Math.abs(rect.top + rect.height / 2 - containerMiddle); if (distance < closestDistance) { closestDistance = distance; closestItem = index; } }); if (closestItem !== null) { setActiveFeature(closestItem); } }; window.addEventListener("scroll", handleScroll); return () => window.removeEventListener("scroll", handleScroll); }, [isMobile]); return (

هر سرنخ را تا قرارداد دنبال کنید

{FEATURES.map((feature, index) => (
!isMobile && setActiveFeature(index)} >

{feature.title}

))}
{FEATURES[activeFeature].imageAlt}
); }; export { Feature199 };