"use client"; import { Check, X as XIcon } from "lucide-react"; import { AspectRatio } from "@/components/ui/aspect-ratio"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { cn } from "@/lib/utils"; interface ProductSpec { name: string; values: (string | boolean)[]; } interface Product { id: string; name: string; image: string; price: number; originalPrice?: number; rating: number; badge?: string; } interface CompareProducts2Props { products?: Product[]; specs?: ProductSpec[]; className?: string; } const DEFAULT_PRODUCTS: Product[] = [ { id: "1", name: "هدفون بی‌سیم پرو", image: "/block-media/shadcnblocks/block/ecommerce/electronics/Modern-White-Headphones-1.png", price: 299, rating: 4.8, }, { id: "2", name: "هدفون استودیویی پلاس", image: "/block-media/shadcnblocks/block/ecommerce/electronics/Sleek-Black-Headphones-1.jpeg", price: 249, originalPrice: 279, rating: 4.5, }, ]; const DEFAULT_SPECS: ProductSpec[] = [ { name: "اندازه درایور", values: ["۴۰ میلی‌متر", "۵۰ میلی‌متر"] }, { name: "پاسخ فرکانسی", values: ["۲۰Hz–۲۰kHz", "۱۰Hz–۴۰kHz"], }, { name: "حذف نویز فعال", values: [true, true] }, { name: "عمر باتری", values: ["۳۰ ساعت", "۲۴ ساعت"] }, { name: "بی‌سیم", values: [true, true] }, { name: "نسخه بلوتوث", values: ["۵٫۳", "۵٫۲"] }, { name: "طراحی تاشو", values: [true, false] }, { name: "وزن", values: ["۲۵۰ گرم", "۲۸۰ گرم"] }, { name: "کیف همراه", values: [true, true] }, { name: "گارانتی", values: ["۲ سال", "۲ سال"] }, ]; const formatPrice = (price: number) => new Intl.NumberFormat("fa-IR", { style: "currency", currency: "IRR", maximumFractionDigits: 0, }).format(price); const formatRating = (rating: number) => rating.toLocaleString("fa-IR", { minimumFractionDigits: 1, maximumFractionDigits: 1, }); const CompareProducts2 = ({ products = DEFAULT_PRODUCTS, specs = DEFAULT_SPECS, className, }: CompareProducts2Props) => { const renderValue = (value: string | boolean) => { if (typeof value === "boolean") { return value ? ( ) : ( ); } return {value}; }; return (

مقایسه محصولات

مشخصات فنی {products.map((product, index) => (
{product.name}
{product.badge && ( {product.badge} )}

{product.name}

{formatPrice(product.price)} {product.originalPrice && ( {formatPrice(product.originalPrice)} )}
{formatRating(product.rating)}
))}
{specs.map((spec, index) => ( {spec.name} {spec.values.map((value, vIndex) => (
{renderValue(value)}
))}
))}
); }; export { CompareProducts2 };