import { useState, Suspense, lazy } from 'react'; import { Target } from 'lucide-react'; import type { JobConfig, Extras } from './types'; import { JobRunnerProvider, useJobRunner } from './hooks/JobRunnerProvider'; const ConfigPage = lazy(() => import('./pages/ConfigPage')); const ResultsPage = lazy(() => import('./pages/ResultsPage')); type Tab = 'config'|'results'|'reports'; function AppInner() { const [tab, setTab] = useState('config'); const { start } = useJobRunner(); const run = (cfg: JobConfig, extras: Extras) => { start(cfg, extras); setTab('results'); }; const tabBtn = (active: boolean) => `relative px-4 py-2 rounded-xl text-sm font-medium transition-all ${ active ? 'text-white bg-gradient-to-r from-indigo-600 via-violet-600 to-fuchsia-600 shadow-lg shadow-indigo-600/20' : 'text-slate-600 hover:text-slate-800 bg-white/70 backdrop-blur border border-white/30 hover:shadow-md' }`; return (

AAAI Demo

Rank Sampling

System Health v1.0.0
Loading
}> {/* 改成把 extras 一起傳 */} {tab === 'config' && } {tab === 'results' && } ); } export default function App() { return ( ); }