"use client"; import { motion } from "framer-motion"; import { ArrowUpRight } from "lucide-react"; import React, { useEffect, useRef, useState } from "react"; import { BorderButton } from "@/components/shadcnblocks/border-button"; import { cn } from "@/lib/utils"; // Custom hook to get previous value const usePrevious = (value: T): T | undefined => { const [prev, setPrev] = useState(undefined); const ref = useRef(value); useEffect(() => { setPrev(ref.current); ref.current = value; }, [value]); return prev; }; interface Services21Props { className?: string; } const Services21 = ({ className }: Services21Props) => { const services = [ { id: "{۱}", title: "طراحی محصول", image: "/block-media/shadcnblocks/block/guri4/img11.png", description: "با درک اهداف کسب‌وکار، مخاطب هدف و چالش‌های فعلی شما شروع می‌کنیم. این فاز شامل تحقیق، تحلیل و برنامه‌ریزی استراتژیک برای شناسایی فرصت‌هاست.", }, { id: "{۲}", title: "طراحی برند", image: "/block-media/shadcnblocks/block/guri3/img25.jpeg", description: "بر اساس یافته‌ها، استراتژی جامعی متناسب با اهداف شما توسعه می‌دهیم. این شامل تعریف رویکرد، زمان‌بندی و نقاط عطف کلیدی برای موفقیت است.", }, { id: "{۰۳}", title: "طراحی رابط کاربری/تجربه کاربری", image: "/block-media/shadcnblocks/block/guri4/img10.png", description: "استراتژی را از طریق پیاده‌سازی و توسعه دقیق به واقعیت تبدیل می‌کنیم. تیم ما به‌صورت همکاری کار می‌کند تا هر جزئیات با نیازها و استانداردهای شما هم‌خوان باشد.", }, { id: "{۰۴}", title: "برندسازی", image: "/block-media/shadcnblocks/block/guri4/img9.png", description: "عملکرد را به‌طور مستمر پایش و بازخورد جمع‌آوری می‌کنیم تا راه‌حل را پالایش و بهبود دهیم. این فرآیند تکراری موفقیت و رشد بلندمدت را تضمین می‌کند.", }, { id: "{۰۵}", title: "بسته‌بندی", image: "/block-media/shadcnblocks/block/guri3/img25.jpeg", description: "راه‌حل‌های بسته‌بندی جامعی می‌سازیم که محصولات شما را محافظت و در عین حال دیده‌شدن برند را تقویت می‌کنند. طراحی‌های ما عملکرد و جذابیت بصری را متعادل می‌کنند تا تعامل مصرف‌کننده را افزایش دهند.", }, ]; const [active, setActive] = useState(0); const previousActive = usePrevious(active); return (
{previousActive !== undefined && (
{services[previousActive].title}
)} {services[active].title}

{services[active].title}

{services[active].description}

    {services.map((service, index) => (
  • setActive(index)} className={cn( "cursor-pointer border-b border-foreground/20 py-8 text-2xll font-semibold tracking-tight lg:text-2xll", )} >
    {service.title} {service.id}
  • ))}
شروع کنید
); }; export { Services21 };