154 lines
5.9 KiB
TypeScript
154 lines
5.9 KiB
TypeScript
import { cn } from "@/lib/utils";
|
||
|
||
const formatPrice = (value: string | number) =>
|
||
`${(typeof value === "string" ? Number(value) : value).toLocaleString("fa-IR")} ریال`;
|
||
|
||
const featuredAddons = [
|
||
{
|
||
id: "addon-1",
|
||
title: "افزونه ۱",
|
||
description: "امکانات تکمیلی برای گسترش قابلیتهای پایه حساب کاربری.",
|
||
price: 199000,
|
||
},
|
||
{
|
||
id: "addon-2",
|
||
title: "افزونه ۲",
|
||
description: "ابزارهای پیشرفته برای تیمهای در حال رشد.",
|
||
price: 199000,
|
||
},
|
||
{
|
||
id: "addon-3",
|
||
title: "افزونه ۳",
|
||
description: "یکپارچهسازی و گزارشدهی حرفهای برای کسبوکارها.",
|
||
price: 199000,
|
||
},
|
||
];
|
||
|
||
const otherAddons = [
|
||
{
|
||
id: "addon-4",
|
||
title: "افزونه ۴",
|
||
description: "افزودن فضای ذخیرهسازی اضافه به حساب شما.",
|
||
price: 90000,
|
||
image: "/block-media/shadcnblocks/block/block-2.svg",
|
||
},
|
||
{
|
||
id: "addon-5",
|
||
title: "افزونه ۵",
|
||
description: "دسترسی به قالبها و کامپوننتهای آماده.",
|
||
price: 190000,
|
||
image: "/block-media/shadcnblocks/block/block-3.svg",
|
||
},
|
||
{
|
||
id: "addon-6",
|
||
title: "افزونه ۶",
|
||
description: "پشتیبانی اولویتدار و پاسخگویی سریعتر.",
|
||
price: 190000,
|
||
priceFootnote: "این یک یادداشت توضیحی است.",
|
||
image: "/block-media/shadcnblocks/block/block-4.svg",
|
||
},
|
||
];
|
||
|
||
interface Pricing12Props {
|
||
className?: string;
|
||
}
|
||
|
||
const Pricing12 = ({ className }: Pricing12Props) => {
|
||
return (
|
||
<section className={cn("py-32", className)}>
|
||
<div className="container">
|
||
<div className="rounded-xl border border-border py-6 md:py-8 lg:pt-16 lg:pb-12">
|
||
<div className="px-6 md:px-8 lg:px-12">
|
||
<div className="mb-8 md:mb-10 md:flex md:justify-between lg:mb-9">
|
||
<div className="lg:w-2/3">
|
||
<h1 className="mb-4 text-xl font-medium md:text-3xl lg:text-xl">
|
||
افزونههای تکمیلی
|
||
</h1>
|
||
<p className="text-xs text-muted-foreground md:text-sm lg:text-base">
|
||
با افزودن ماژولهای تکمیلی، امکانات حساب خود را متناسب با
|
||
نیازتان گسترش دهید.
|
||
</p>
|
||
</div>
|
||
<img
|
||
src="/block-media/shadcnblocks/block/block-1.svg"
|
||
alt="افزونهها"
|
||
className="hidden size-24 md:block lg:size-32"
|
||
/>
|
||
</div>
|
||
<div className="flex flex-col gap-x-8 gap-y-3 xl:flex-row">
|
||
{featuredAddons.map((addon) => (
|
||
<div
|
||
key={addon.id}
|
||
className="flex flex-1 flex-col rounded-lg bg-accent p-6 lg:py-8"
|
||
>
|
||
<h2 className="mb-1.5 text-base font-medium lg:mb-2 lg:text-lg">
|
||
{addon.title}
|
||
</h2>
|
||
<div className="grid flex-1 grid-cols-1 gap-x-10 md:grid-cols-3 lg:grid-cols-1">
|
||
<p className="mb-8 max-w-xs text-xs text-muted-foreground md:col-span-2 md:mb-0 lg:mb-10 lg:text-base">
|
||
{addon.description}
|
||
</p>
|
||
<div className="col-span-1 md:mt-auto md:ms-auto lg:ms-0">
|
||
<p>
|
||
<span className="font-medium lg:text-xl">
|
||
{formatPrice(addon.price)}
|
||
</span>
|
||
<span className="text-xs font-medium text-muted-foreground">
|
||
{" "}
|
||
در ماه
|
||
</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
))}
|
||
</div>
|
||
</div>
|
||
<div className="mt-6 border-t border-border md:mt-8 lg:mt-10">
|
||
<div className="divide-y divide-border px-6 md:px-8 lg:px-12">
|
||
{otherAddons.map((addon) => (
|
||
<div
|
||
key={addon.id}
|
||
className="flex flex-col gap-4 py-6 last:pb-0 md:flex-row md:items-center md:justify-between md:gap-x-12 lg:py-10"
|
||
>
|
||
<div className="flex items-center md:max-w-md md:gap-4 lg:max-w-full lg:gap-6">
|
||
<img
|
||
src={addon.image}
|
||
alt={addon.title}
|
||
className="hidden shrink-0 md:block md:size-16 lg:size-20"
|
||
/>
|
||
<div className="max-w-md space-y-1 lg:max-w-md lg:space-y-2">
|
||
<p className="mb-1.5 text-lg font-medium md:text-xl lg:mb-2 lg:text-xl">
|
||
{addon.title}
|
||
</p>
|
||
<p className="text-xs text-muted-foreground md:text-xs lg:text-base">
|
||
{addon.description}
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<div className="shrink-0 md:self-end md:text-end">
|
||
<span className="text-xl font-medium md:text-3xl lg:text-xl">
|
||
{formatPrice(addon.price)}
|
||
</span>
|
||
<span className="text-xs text-muted-foreground">
|
||
{" "}
|
||
در ماه
|
||
</span>
|
||
{addon.priceFootnote && (
|
||
<div className="mt-1 text-xs font-medium text-muted-foreground md:max-w-[8rem] lg:max-w-full">
|
||
* {addon.priceFootnote}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
))}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
);
|
||
};
|
||
|
||
export { Pricing12 };
|