import { lazy, Suspense } from "react"; import { useHashRoute, navigateTo } from "../hashRouter"; const ModelApp = lazy(() => import("../model/ModelApp")); const PlanRevisionsApp = lazy(() => import("../plan_revisions/PlanRevisionsApp")); const TrajExtApp = lazy(() => import("../traj_ext/TrajExtApp")); const SelectedToolsApp = lazy(() => import("../selected_tools/SelectedToolsApp")); type TabId = "model" | "plan-revisions" | "traj-ext" | "selected-tools"; const TABS: { id: TabId; label: string; activeClass: string }[] = [ { id: "model", label: "Model Trace", activeClass: "border-blue-500 text-blue-400" }, { id: "plan-revisions", label: "Plan Revisions", activeClass: "border-amber-500 text-amber-400" }, { id: "traj-ext", label: "Traj Ext", activeClass: "border-emerald-500 text-emerald-400" }, { id: "selected-tools", label: "Selected Tools", activeClass: "border-amber-400 text-amber-300" }, ]; const VALID_TABS = new Set(TABS.map(t => t.id)); export default function VisualizerApp() { const route = useHashRoute(); const activeTab: TabId = VALID_TABS.has(route.tab) ? (route.tab as TabId) : "model"; return (
{/* Visualizer tab bar */}
{TABS.map((tab) => ( ))}
{/* Active visualizer */}
Loading...
} > {activeTab === "model" && (
)} {activeTab === "plan-revisions" && (
)} {activeTab === "traj-ext" && (
)} {activeTab === "selected-tools" && (
)}
); }