'use client'; import { useSearchParams } from 'next/navigation'; import { Suspense } from 'react'; import PayPageLayout from '@/components/PayPageLayout'; import { resolveLocale } from '@/lib/locale'; const MODULES = [ { path: '/admin/orders', label: { zh: '订单管理', en: 'Order Management' }, desc: { zh: '查看和管理所有充值订单', en: 'View and manage all recharge orders' }, icon: ( ), }, { path: '/admin/dashboard', label: { zh: '数据概览', en: 'Dashboard' }, desc: { zh: '收入统计与订单趋势', en: 'Revenue statistics and order trends' }, icon: ( ), }, { path: '/admin/channels', label: { zh: '渠道管理', en: 'Channel Management' }, desc: { zh: '配置 API 渠道与倍率', en: 'Configure API channels and rate multipliers' }, icon: ( ), }, { path: '/admin/subscriptions', label: { zh: '订阅管理', en: 'Subscription Management' }, desc: { zh: '管理订阅套餐与用户订阅', en: 'Manage subscription plans and user subscriptions' }, icon: ( ), }, ]; function AdminOverviewContent() { const searchParams = useSearchParams(); const token = searchParams.get('token'); const theme = searchParams.get('theme') === 'dark' ? 'dark' : 'light'; const uiMode = searchParams.get('ui_mode') || 'standalone'; const locale = resolveLocale(searchParams.get('lang')); const isDark = theme === 'dark'; const isEmbedded = uiMode === 'embedded'; const text = locale === 'en' ? { missingToken: 'Missing admin token', missingTokenHint: 'Please access the admin page from the Sub2API platform.', title: 'Admin Panel', subtitle: 'Manage orders, analytics, channels and subscriptions', } : { missingToken: '缺少管理员凭证', missingTokenHint: '请从 Sub2API 平台正确访问管理页面', title: '管理后台', subtitle: '订单、数据、渠道与订阅的统一管理入口', }; if (!token) { return (

{text.missingToken}

{text.missingTokenHint}

); } const navParams = new URLSearchParams(); if (token) navParams.set('token', token); if (locale === 'en') navParams.set('lang', 'en'); if (isDark) navParams.set('theme', 'dark'); if (isEmbedded) navParams.set('ui_mode', 'embedded'); return (
{MODULES.map((mod) => (
{mod.icon}

{mod.label[locale]}

{mod.desc[locale]}

))}
); } function AdminOverviewFallback() { const searchParams = useSearchParams(); const locale = resolveLocale(searchParams.get('lang')); return (
{locale === 'en' ? 'Loading...' : '加载中...'}
); } export default function AdminPage() { return ( }> ); }