import { useEffect, useState } from 'react' import { useSearchParams } from 'react-router-dom' import { APIConfigsPanel } from '../components/APIConfigsPanel' import { ManagementShortcuts } from '../components/ManagementShortcuts' import { AdminLibraryPanel } from './AdminLibraryPanel' import { AdminUsersPanel } from './AdminUsersPanel' type AdminTab = 'library' | 'users' | 'api' function parseAdminTab(value: string | null): AdminTab { if (value === 'users' || value === 'api') return value return 'library' } export function AdminPage() { const [searchParams, setSearchParams] = useSearchParams() const [tab, setTab] = useState(() => parseAdminTab(searchParams.get('tab'))) const tabs = [ { key: 'library' as const, label: '媒体库' }, { key: 'users' as const, label: '用户' }, { key: 'api' as const, label: '外部API' }, ] useEffect(() => { setTab(parseAdminTab(searchParams.get('tab'))) }, [searchParams]) const selectTab = (next: AdminTab) => { setTab(next) setSearchParams(next === 'library' ? {} : { tab: next }) } return (

管理后台

{tabs.map((k) => ( ))}
{tab === 'library' && } {tab === 'users' && } {tab === 'api' && }
) }