158 lines
5.3 KiB
TypeScript
158 lines
5.3 KiB
TypeScript
import { Layout, Pointer, Zap, type LucideIcon } from "lucide-react";
|
|
|
|
import { Badge } from "@/components/ui/badge";
|
|
import { Button } from "@/components/ui/button";
|
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
|
import { cn } from "@/lib/utils";
|
|
|
|
interface TabContent {
|
|
badge: string;
|
|
title: string;
|
|
description: string;
|
|
buttonText: string;
|
|
imageSrc: string;
|
|
imageAlt: string;
|
|
}
|
|
|
|
interface Tab {
|
|
value: string;
|
|
icon: LucideIcon;
|
|
label: string;
|
|
content: TabContent;
|
|
}
|
|
|
|
interface Feature108Props {
|
|
badge?: string;
|
|
heading?: string;
|
|
description?: string;
|
|
tabs?: Tab[];
|
|
className?: string;
|
|
}
|
|
|
|
const Feature108 = ({
|
|
badge = "افزایش فروش",
|
|
heading = "پیشبینی درآمد را دقیقتر کنید",
|
|
description = "با یادآورهای هوشمند و اولویتبندی سرنخ، زمان تیم روی معاملات با احتمال بیشتر صرف میشود و چرخه فروش کوتاهتر میشود.",
|
|
tabs = [
|
|
{
|
|
value: "tab-1",
|
|
icon: Zap,
|
|
label: "تیم فروش",
|
|
content: {
|
|
badge: "بستن معامله",
|
|
title: "همکاری فروش و بازاریابی",
|
|
description:
|
|
"وضعیت هر پیشنهاد را از ارسال تا امضا بدون پیگیری دستی دنبال کنید.",
|
|
buttonText: "بستن معامله",
|
|
imageSrc:
|
|
"/block-media/shadcnblocks/block/placeholder-dark-1.svg",
|
|
imageAlt: "صف اولویت سرنخها",
|
|
},
|
|
},
|
|
{
|
|
value: "tab-2",
|
|
icon: Pointer,
|
|
label: "رشد درآمد",
|
|
content: {
|
|
badge: "افزایش فروش",
|
|
title: "اولویتبندی سرنخ",
|
|
description:
|
|
"دلایل از دست دادن معامله را تحلیل کنید و استراتژی فروش را بهبود دهید.",
|
|
buttonText: "قالب پیشنهاد فروش",
|
|
imageSrc:
|
|
"/block-media/shadcnblocks/block/placeholder-dark-2.svg",
|
|
imageAlt: "داشبورد عملکرد فروش",
|
|
},
|
|
},
|
|
{
|
|
value: "tab-3",
|
|
icon: Layout,
|
|
label: "تیم فروش",
|
|
content: {
|
|
badge: "بستن معامله",
|
|
title: "قالب پیشنهاد فروش",
|
|
description:
|
|
"اهداف فردی و تیمی را شفاف تعریف کنید و پیشرفت را لحظهای ببینید.",
|
|
buttonText: "بستن معامله",
|
|
imageSrc:
|
|
"/block-media/shadcnblocks/block/placeholder-dark-3.svg",
|
|
imageAlt: "نمودار نرخ تبدیل",
|
|
},
|
|
},
|
|
],
|
|
className,
|
|
}: Feature108Props) => {
|
|
return (
|
|
<section dir="rtl" lang="fa" className={cn("py-32", className)}>
|
|
<div className="container mx-auto">
|
|
<div className="flex flex-col items-center gap-4 text-center">
|
|
<Badge variant="outline">{badge}</Badge>
|
|
<h1 className="max-w-2xl text-3xl font-semibold md:text-xl">
|
|
{heading}
|
|
</h1>
|
|
<p className="text-muted-foreground">{description}</p>
|
|
</div>
|
|
<Tabs
|
|
dir="rtl"
|
|
defaultValue={
|
|
tabs.find((tab) => tab.label === "رشد درآمد")?.value ??
|
|
tabs[0].value
|
|
}
|
|
className="mt-8"
|
|
>
|
|
<div
|
|
dir="rtl"
|
|
className="flex justify-center overflow-x-auto overflow-y-hidden"
|
|
>
|
|
<TabsList className="container">
|
|
{tabs.map((tab) => (
|
|
<TabsTrigger key={tab.value} value={tab.value} className="">
|
|
<tab.icon className="h-auto w-4 shrink-0" /> {tab.label}
|
|
</TabsTrigger>
|
|
))}
|
|
</TabsList>
|
|
</div>
|
|
<div className="mx-auto mt-8 max-w-7xl rounded-2xl bg-muted/70 p-6 lg:p-16">
|
|
<div className="relative">
|
|
{tabs.map((tab) => (
|
|
<TabsContent
|
|
key={tab.value}
|
|
value={tab.value}
|
|
dir="rtl"
|
|
className="grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10"
|
|
>
|
|
<div className="flex flex-col items-start gap-5 text-right">
|
|
<Badge variant="outline" className="w-fit bg-background">
|
|
{tab.content.badge}
|
|
</Badge>
|
|
<h3 className="text-3xl font-semibold lg:text-2xll">
|
|
{tab.content.title}
|
|
</h3>
|
|
<p className="text-muted-foreground lg:text-lg">
|
|
{tab.content.description}
|
|
</p>
|
|
<Button className="mt-2.5 w-fit gap-2" size="lg">
|
|
{tab.content.buttonText}
|
|
</Button>
|
|
</div>
|
|
<div className="relative h-[300px] w-full lg:h-[400px]">
|
|
<img
|
|
src={tab.content.imageSrc}
|
|
alt={tab.content.imageAlt}
|
|
className="h-full w-full rounded-xl object-cover"
|
|
width={600}
|
|
height={400}
|
|
/>
|
|
</div>
|
|
</TabsContent>
|
|
))}
|
|
</div>
|
|
</div>
|
|
</Tabs>
|
|
</div>
|
|
</section>
|
|
);
|
|
};
|
|
|
|
export { Feature108 };
|