"use client" import * as React from "react" import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs" import { AllActivity } from "@/components/common/trade/all-activity" import { Community } from "@/components/common/trade/community" import { Payment } from "@/components/common/trade/payment" import { Receive } from "@/components/common/trade/receive" import { TradeTable } from "@/components/common/trade/trade-table" import { Online } from "@/components/common/trade/online" import { RedEnvelope, RedEnvelopeList } from "@/components/common/trade/red-envelope" import { TransactionProvider } from "@/contexts/transaction-context" import services from "@/lib/services" /** 标签触发器样式 */ const TAB_TRIGGER_STYLES = "data-[state=active]:bg-transparent " + "data-[state=active]:shadow-none " + "data-[state=active]:border-0 " + "data-[state=active]:border-b-2 " + "data-[state=active]:border-indigo-500 " + "bg-transparent " + "rounded-none " + "border-0 " + "border-b-2 " + "border-transparent " + "px-0 " + "text-sm " + "font-bold " + "text-muted-foreground " + "data-[state=active]:text-indigo-500 " + "-mb-[2px] " + "relative " + "hover:text-foreground " + "transition-colors " + "flex-none" /** 标签值类型 */ type TabValue = 'receive' | 'payment' | 'community' | 'online' | 'all' | 'redenvelope' /** 页面组件映射表 */ const PAGE_COMPONENTS: Record = { receive: Receive, payment: Payment, community: Community, online: Online, redenvelope: RedEnvelope, all: AllActivity, } /** * 活动交易主页面组件 * * 负责组装活动交易中心的各个子组件 */ export function TradeMain() { const [activeTab, setActiveTab] = React.useState('receive') const [mounted, setMounted] = React.useState(false) const [refreshKey, setRefreshKey] = React.useState(0) React.useEffect(() => { setMounted(true) }, []) const [redEnvelopeEnabled, setRedEnvelopeEnabled] = React.useState(false) React.useEffect(() => { /* 获取红包状态 */ services.config.getPublicConfig() .then(res => setRedEnvelopeEnabled(res.red_envelope_enabled)) .catch(() => setRedEnvelopeEnabled(false)) }, []) /* 获取活动类型 */ const getOrderType = (tab: TabValue) => { if (tab === 'all' || tab === 'redenvelope') return undefined return tab } /* 渲染活动页面内容 */ const renderPageContent = () => { if (activeTab === 'redenvelope') { return setRefreshKey(prev => prev + 1)} /> } const Component = PAGE_COMPONENTS[activeTab] return Component ? : null } if (!mounted) { return (

积分活动

) } return (

积分活动

setActiveTab(v as TabValue)} className="w-full" > 积分收益 积分消耗 社区划转 在线流转 {redEnvelopeEnabled && ( 积分红包 )} 所有活动
{renderPageContent()}

活动记录

{activeTab === 'redenvelope' ? ( ) : ( )}
) }