186 lines
6.5 KiB
TypeScript
186 lines
6.5 KiB
TypeScript
"use client";
|
|
|
|
import { Star } from "lucide-react";
|
|
import Masonry, { ResponsiveMasonry } from "react-responsive-masonry";
|
|
|
|
import { Avatar, AvatarImage } from "@/components/ui/avatar";
|
|
import { Card } from "@/components/ui/card";
|
|
import { cn } from "@/lib/utils";
|
|
|
|
interface DataItem {
|
|
name: string;
|
|
avatar: string;
|
|
content: string;
|
|
margin?: string;
|
|
}
|
|
|
|
const DATA: DataItem[] = [
|
|
{
|
|
name: "امیرحسین قاسمی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-5.webp",
|
|
content:
|
|
"این سامانه مدیریت ارتباط با مشتری کاملاً قیف فروش ما را متحول کرد. پیگیری لید و فرصتها شفاف شده و نرخ پاسخدهی تیم بالا رفته.",
|
|
margin: "mt-6",
|
|
},
|
|
{
|
|
name: "نیلوفر حسینی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-3.webp",
|
|
content:
|
|
"توالیهای پیگیری ایمیل نجاتبخش بودند. کمک کردند بدون افت کیفیت، لیدهای گرم را سریعتر ببندیم.",
|
|
},
|
|
{
|
|
name: "پارسا موسوی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-6.webp",
|
|
content:
|
|
"از وقتی اتوماسیون بازاریابی را فعال کردیم، کیفیت لید ورودی و نرخ واجد شرایط بودن جهش کرده.",
|
|
margin: "mt-4",
|
|
},
|
|
{
|
|
name: "سارا احمدی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-7.webp",
|
|
content:
|
|
"داشبورد قیف باورنکردنی است. بینش لازم برای پیشبینی درآمد و کوچینگ نمایندگان را میدهد.",
|
|
},
|
|
{
|
|
name: "مازیار رضایی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-5.webp",
|
|
content:
|
|
"یکپارچهسازی با ایمیل و پشتیبانی بینقص بود. مسیریابی لید از روز اول دقیق کار کرد.",
|
|
},
|
|
{
|
|
name: "مهسا نوری",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-1.webp",
|
|
content:
|
|
"مدیریت حسابهای کلیدی و تمدید قرارداد در یک نما، هماهنگی تیم فروش را آسان کرده.",
|
|
},
|
|
{
|
|
name: "فاطمه رستمی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-7.webp",
|
|
content:
|
|
"کمپینهای خودکار یکنواختی پیام را حفظ کردند و هزینه جذب لید واجد شرایط کاهش یافت.",
|
|
},
|
|
{
|
|
name: "مهتاب شریفی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-3.webp",
|
|
content:
|
|
"نمرهدهی لید اولویتبندی فرصتها را شفاف کرد؛ نمایندگان روی معاملات درست تمرکز میکنند.",
|
|
},
|
|
{
|
|
name: "کاوه مرادی",
|
|
avatar:
|
|
"/block-media/shadcnblocks/block/avatar-4.webp",
|
|
content:
|
|
"گزارش نرخ تبدیل در هر مرحله قیف، گلوگاههای فروش را سریع مشخص کرد.",
|
|
},
|
|
];
|
|
|
|
interface RewardCardProps {
|
|
icon: string;
|
|
title: string;
|
|
subtitle: string;
|
|
}
|
|
|
|
const RewardCard = ({ icon, title, subtitle }: RewardCardProps) => (
|
|
<div className="flex flex-col gap-2 rounded-xl bg-muted p-2 px-4 shadow-sm">
|
|
<div className="flex flex-row items-center gap-2">
|
|
<div className="rounded-full bg-background p-2">
|
|
<img
|
|
src={icon}
|
|
alt={title}
|
|
width={40}
|
|
height={40}
|
|
className="rounded-full"
|
|
/>
|
|
</div>
|
|
<div className="flex flex-col">
|
|
<span className="text-sm font-medium">{title}</span>
|
|
<span className="text-sm text-muted-foreground">{subtitle}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
);
|
|
|
|
interface Testimonial24Props {
|
|
className?: string;
|
|
}
|
|
|
|
const Testimonial24 = ({ className }: Testimonial24Props) => {
|
|
return (
|
|
<section dir="rtl" lang="fa" className={cn("py-32", className)}>
|
|
<div className="container">
|
|
<div className="flex flex-col items-center gap-6 px-4 sm:px-8">
|
|
<h2 className="mb-2 text-center text-3xl font-semibold lg:text-2xll">
|
|
ببینید چرا تیمهای فروش <br /> سامانه مدیریت ارتباط با مشتری ما را انتخاب میکنند
|
|
</h2>
|
|
|
|
<div className="mt-4 flex flex-col items-center gap-4 sm:flex-row">
|
|
<RewardCard
|
|
icon="/block-media/shadcnblocks/block/block-1.svg"
|
|
title="برترین برای فروش"
|
|
subtitle="انتخاب ۱۴۲"
|
|
/>
|
|
|
|
<RewardCard
|
|
icon="/block-media/shadcnblocks/block/block-2.svg"
|
|
title="برترین برای سامانه مدیریت ارتباط با مشتری"
|
|
subtitle="انتخاب ۱۴۱"
|
|
/>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="relative mt-14 w-full px-4 after:absolute after:inset-x-0 after:-bottom-2 after:h-96 after:bg-linear-to-t after:from-background sm:px-8 md:px-16 lg:px-32">
|
|
<ResponsiveMasonry
|
|
columnsCountBreakPoints={{ 350: 1, 768: 2, 1024: 3 }}
|
|
>
|
|
<Masonry gutter="20px" columnsCount={3}>
|
|
{DATA.map((testimonial, idx) => (
|
|
<Card
|
|
key={idx}
|
|
className={cn(
|
|
"rounded-xl p-5 shadow-sm",
|
|
idx > 3 && idx <= 5 && "hidden md:block",
|
|
idx > 5 && "hidden lg:block",
|
|
testimonial.margin,
|
|
)}
|
|
>
|
|
<div className="mb-4 flex gap-1">
|
|
{[...Array(5)].map((_, i) => (
|
|
<Star key={i} className="h-4 w-4 fill-primary" />
|
|
))}
|
|
</div>
|
|
|
|
<div className="mt-4 text-sm text-foreground">
|
|
<q>{testimonial.content}</q>
|
|
</div>
|
|
|
|
<div className="mt-4 flex items-center gap-2">
|
|
<Avatar className="size-9 rounded-full ring-1 ring-muted">
|
|
<AvatarImage
|
|
src={testimonial.avatar}
|
|
alt={testimonial.name}
|
|
/>
|
|
</Avatar>
|
|
<div className="text-sm">
|
|
<p className="font-medium">{testimonial.name}</p>
|
|
</div>
|
|
</div>
|
|
</Card>
|
|
))}
|
|
</Masonry>
|
|
</ResponsiveMasonry>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export { Testimonial24 };
|