Files
reui-blocks/blocks/download3.tsx
T

128 lines
4.3 KiB
TypeScript

import { CheckCircle, Download } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Card } from "@/components/ui/card";
import { cn } from "@/lib/utils";
interface Download3Props {
heading?: string;
description?: string;
version?: string;
fileSize?: string;
requirements?: string[];
downloadButton?: {
text: string;
url: string;
className?: string;
};
secondaryButton?: {
text: string;
url: string;
};
className?: string;
}
const Download3 = ({
heading = "دانلود نسخه دسکتاپ",
description =
"تجربه کامل دسکتاپ را با اپلیکیشن قدرتمند ما داشته باشید. سازگار با رومیزی، macOS و آزاد.",
version = "نسخه ۲۱۰",
fileSize = "۱۴۵ مگابایت",
requirements = [
"رومیزی ۱۰+ / macOS 10.15+ / اوبونتو 18.04+",
"حداقل ۴ گیگابایت رم",
"۱ گیگابایت فضای خالی دیسک",
"اتصال اینترنت لازم است",
],
downloadButton = {
text: "همین حالا دانلود کنید",
url: "#",
},
secondaryButton = {
text: "مشاهده یادداشت انتشار",
url: "#",
},
className,
}: Download3Props) => {
return (
<section dir="rtl" lang="fa" className={cn("py-32", className)}>
<div className="container">
<div className="mx-auto max-w-2xl text-center">
<div className="mb-12 flex flex-col items-center gap-4">
<img
src="/block-media/shadcnblocks/block/logos/ShadcnBlocks-logo.svg"
alt="لوگوی اپلیکیشن"
className="h-14"
/>
<h2 className="mb-4 text-xl font-bold tracking-tight sm:text-2xll lg:text-2xll">
{heading}
</h2>
<p className="text-lg text-muted-foreground">{description}</p>
</div>
<Card className="p-8 text-start">
<div className="mb-6 flex items-center justify-between">
<div>
<h3 className="text-xl font-semibold">اپلیکیشن دسکتاپ</h3>
<p className="text-muted-foreground" dir="rtl">
PC / Mac / Linux
</p>
</div>
<div className="text-end">
<p className="text-sm font-medium">{version}</p>
<p className="text-sm text-muted-foreground">{fileSize}</p>
</div>
</div>
<div className="mb-2">
<h4 className="mb-4 font-semibold">نیازمندی‌های سیستم:</h4>
<div className="space-y-2">
{requirements.map((requirement, index) => (
<div key={index} className="flex items-center gap-3">
<CheckCircle className="h-4 w-4 shrink-0 text-green-500" />
<span
className="text-sm text-muted-foreground"
dir={/[A-Za-z]/.test(requirement) ? "ltr" : undefined}
>
{requirement}
</span>
</div>
))}
</div>
</div>
<div className="flex flex-col gap-3 sm:flex-row">
<Button size="lg" className="flex-1" asChild>
<a
href={downloadButton.url}
className="inline-flex items-center justify-center gap-2"
>
{downloadButton.text}
<Download className="h-5 w-5" />
</a>
</Button>
<Button variant="outline" size="lg" className="flex-1" asChild>
<a href={secondaryButton.url}>{secondaryButton.text}</a>
</Button>
</div>
<div className="mt-4 text-center">
<p className="text-sm text-muted-foreground">
دانلود رایگان • بدون نیاز به ثبت‌نام • ۳۰ روز آزمایشی رایگان
</p>
</div>
</Card>
<div className="mt-4 text-center">
<p className="text-sm text-muted-foreground">
مورد اعتماد بیش از ۵۰٬۰۰۰ متخصص در سراسر جهان
</p>
</div>
</div>
</div>
</section>
);
};
export { Download3 };