'use client'; import { useSearchParams, usePathname } from 'next/navigation'; import { Suspense } from 'react'; import { resolveLocale } from '@/lib/locale'; const NAV_ITEMS = [ { path: '/admin', label: { zh: '数据概览', en: 'Dashboard' } }, { path: '/admin/orders', label: { zh: '订单管理', en: 'Orders' } }, { path: '/admin/channels', label: { zh: '渠道管理', en: 'Channels' } }, { path: '/admin/subscriptions', label: { zh: '订阅管理', en: 'Subscriptions' } }, ]; function AdminNav() { const searchParams = useSearchParams(); const pathname = usePathname(); const token = searchParams.get('token') || ''; const theme = searchParams.get('theme') || 'light'; const uiMode = searchParams.get('ui_mode') || 'standalone'; const locale = resolveLocale(searchParams.get('lang')); const isDark = theme === 'dark'; const buildUrl = (path: string) => { const params = new URLSearchParams(); if (token) params.set('token', token); params.set('theme', theme); params.set('ui_mode', uiMode); if (locale !== 'zh') params.set('lang', locale); return `${path}?${params.toString()}`; }; const isActive = (navPath: string) => { if (navPath === '/admin') return pathname === '/admin' || pathname === '/admin/dashboard'; return pathname.startsWith(navPath); }; return ( ); } export default function AdminLayout({ children }: { children: React.ReactNode }) { return ( {children} ); }