import { useState } from "react" import { useSearchParams } from "react-router-dom" import Wrap from "@/components/wrap" import { PRODUCT_DATA } from "@/lib/models/product" import { cn } from "@/lib/utils" import ProductGrid from "./productGrid" import ProductSidebar from "./productSidebar" import ProductTabs from "./productTabs" import PurchaseInfo from "./purchaseInfo" const TAB_ALIAS: Record = { short: "dynamic", long: "dynamic", http: "http", tunnel: "dynamic", exclusive: "static", } export default function ProductPage() { const [searchParams, setSearchParams] = useSearchParams() const [activeVersionId, setActiveVersionId] = useState("v1") const urlTab = searchParams.get("tab") || "dynamic" const activeTabId = TAB_ALIAS[urlTab] || urlTab const activeBrandId = searchParams.get("brand") || "" const currentTab = PRODUCT_DATA.find(t => t.id === activeTabId) || PRODUCT_DATA[0] const currentBrand = currentTab.brands.find(b => b.id === activeBrandId) || currentTab.brands[0] const handleTabChange = (tabId: string) => { const targetTab = PRODUCT_DATA.find(t => t.id === tabId) const firstBrand = targetTab?.brands[0] setSearchParams({ tab: tabId, brand: firstBrand?.id || "" }) setActiveVersionId("v1") } const handleBrandSelect = (brandId: string) => { setSearchParams({ tab: activeTabId, brand: brandId }) setActiveVersionId("v1") } const getDisplayProducts = () => { if (!currentBrand) return [] if (currentBrand.versions && currentBrand.versions.length > 0) { return currentBrand.products.filter(p => p.version === activeVersionId) } return currentBrand.products } const displayProducts = getDisplayProducts() const isPurchaseInfo = currentBrand?.id === "info" return (
{!isPurchaseInfo ? ( <> {" "}
  • 连接方式:电脑和安卓请优选客户端,苹果,路由器可通过线路表直连
  • 本产品在个人中心签署协议后可联系客服解除限制
  • IP池超大且纯净,所有线路均为三网混合,更真实有效
  • 230+城市,500+线路,有全国混拨和省混拨
需求5个以上,可以联系客服设置优惠价
{currentBrand?.versions && currentBrand.versions.length > 0 && (
{currentBrand.versions.map(v => ( ))}
)}
{displayProducts.length > 0 ? ( ) : (
该版本暂无产品数据
)}
) : (
)}
) }