"use client"; import { Battery, Box, ChevronDown, Cpu, HardDrive, Monitor, Wifi, } from "lucide-react"; import { useState } from "react"; import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/components/ui/collapsible"; import { Table, TableBody, TableCell, TableRow } from "@/components/ui/table"; import { cn } from "@/lib/utils"; interface Spec { label: string; value: string; } interface SpecCategory { id: string; name: string; icon: React.ReactNode; specs: Spec[]; } const DEFAULT_CATEGORIES: SpecCategory[] = [ { id: "display", name: "نمایشگر", icon: , specs: [ { label: "اندازه صفحه", value: '۶٫۷ اینچ Super Retina XDR' }, { label: "وضوح تصویر", value: "۲۷۹۶ × ۱۲۹۰ پیکسل" }, { label: "تراکم پیکسل", value: "۴۶۰ ppi" }, { label: "نرخ نوساز", value: "۱ تا ۱۲۰ هرتز ProMotion" }, { label: "نوع صفحه", value: "OLED، HDR" }, { label: "روشنایی حداکثر", value: "۲۰۰۰ نیت (فضای باز)" }, ], }, { id: "performance", name: "عملکرد", icon: , specs: [ { label: "پردازنده", value: "تراشه A17 حرفهای" }, { label: "هستههای CPU", value: "۶ هسته (۲ عملکردی + ۴ کارآمد)" }, { label: "پردازنده گرافیکی", value: "GPU ششهستهای" }, { label: "موتور عصبی", value: "۱۶ هسته" }, { label: "حافظه RAM", value: "۸ گیگابایت" }, ], }, { id: "storage", name: "حافظه", icon: , specs: [ { label: "حافظه داخلی", value: "۲۵۶ / ۵۱۲ گیگابایت / ۱ ترابایت" }, { label: "قابل گسترش", value: "خیر" }, { label: "فضای ابری", value: "iCloud (۵ گیگابایت رایگان)" }, ], }, { id: "battery", name: "باتری و شارژ", icon: , specs: [ { label: "ظرفیت باتری", value: "۴۴۲۲ میلیآمپرساعت" }, { label: "پخش ویدیو", value: "تا ۲۹ ساعت" }, { label: "پخش آنلاین", value: "تا ۲۵ ساعت" }, { label: "شارژ سیمی", value: "شارژ سریع ۲۷ وات" }, { label: "شارژ بیسیم", value: "MagSafe ۱۵ وات، Qi ۷٫۵ وات" }, { label: "شارژ معکوس", value: "خیر" }, ], }, { id: "connectivity", name: "ارتباطات", icon: , specs: [ { label: "۵G", value: "بله (sub-6 GHz، mmWave)" }, { label: "Wi-Fi", value: "Wi-Fi 6E (802.11ax)" }, { label: "بلوتوث", value: "۵٫۳" }, { label: "NFC", value: "بله" }, { label: "USB", value: "USB-C 3.0 (۱۰ گیگابیت بر ثانیه)" }, { label: "ماهواره", value: "SOS اضطراری" }, ], }, { id: "physical", name: "مشخصات فیزیکی", icon: , specs: [ { label: "ارتفاع", value: "۱۵۹٫۹ میلیمتر" }, { label: "عرض", value: "۷۶٫۷ میلیمتر" }, { label: "ضخامت", value: "۸٫۲۵ میلیمتر" }, { label: "وزن", value: "۲۲۱ گرم" }, { label: "بدنه", value: "قاب تیتانیومی، محافظ سرامیکی" }, { label: "مقاومت در برابر آب", value: "IP68 (۶ متر به مدت ۳۰ دقیقه)" }, ], }, ]; interface ProductSpecs1Props { categories?: SpecCategory[]; title?: string; className?: string; } const ProductSpecs1 = ({ categories = DEFAULT_CATEGORIES, title = "مشخصات فنی", className, }: ProductSpecs1Props) => { const [openCategories, setOpenCategories] = useState( categories.map((c) => c.id), ); const toggleCategory = (id: string) => { setOpenCategories((prev) => prev.includes(id) ? prev.filter((c) => c !== id) : [...prev, id], ); }; const expandAll = () => setOpenCategories(categories.map((c) => c.id)); const collapseAll = () => setOpenCategories([]); return ( {/* Header */} {title} باز کردن همه · بستن همه {/* Spec Categories */} {categories.map((category) => ( toggleCategory(category.id)} > {category.icon} {category.name} {category.specs.map((spec, index) => ( {spec.label} {spec.value} ))} ))} ); }; export { ProductSpecs1 };