/**
* 统一设置页面 — Tab 切换外壳。
*
* 通过 URL query param ?tab=xxx 同步 Tab 状态。
*/
import { useSearchParams } from 'react-router-dom'
import { motion } from 'framer-motion'
import { BarChart3, Radio, SlidersHorizontal, Sparkles, Settings2, Zap } from 'lucide-react'
import { SettingsAIPanel } from './settings/AI'
import { SettingsMonitoringPanel } from './settings/Monitoring'
import { SettingsExtPagesPanel } from './settings/ExtPages'
import { SettingsMenuSettingsPanel } from './settings/MenuSettings'
import { SettingsSystemPanel } from './settings/System'
import { SettingsCustomSignalsPanel } from './settings/CustomSignals'
import { PageHeader } from '@/components/PageHeader'
import { cn } from '@/lib/cn'
// ===== Tab 定义 =====
const TABS = [
// { key: 'account', label: '数据源', icon: Key, panel: SettingsKeysPanel },
{ key: 'ai', label: 'AI 设置', icon: Sparkles, panel: SettingsAIPanel },
{ key: 'monitoring', label: '实时监控', icon: Radio, panel: SettingsMonitoringPanel },
{ key: 'ext-pages', label: '扩展页面', icon: BarChart3, panel: SettingsExtPagesPanel },
{ key: 'signals', label: '信号库', icon: Zap, panel: SettingsCustomSignalsPanel },
{ key: 'menus', label: '菜单设置', icon: SlidersHorizontal, panel: SettingsMenuSettingsPanel },
{ key: 'system', label: '系统设置', icon: Settings2, panel: SettingsSystemPanel },
] as const
type TabKey = (typeof TABS)[number]['key']
export function Settings() {
const [searchParams, setSearchParams] = useSearchParams()
const tabParam = searchParams.get('tab') as TabKey | null
const activeTab = TABS.find((t) => t.key === tabParam) ?? TABS[0]
const highlight = searchParams.get('highlight') ?? ''
return (
<>