import { lazy, Suspense } from "react"; import { useHashRoute, navigateTo, useCopyLink } from "./hashRouter"; import ThemeToggle, { useTheme } from "./ThemeToggle"; const VisualizerApp = lazy(() => import("./visualizer/VisualizerApp")); const ExperimentsApp = lazy(() => import("./experiments/ExperimentsApp")); type PageId = "experiments" | "visualizer"; const PAGES: { id: PageId; label: string }[] = [ { id: "experiments", label: "Experiments" }, { id: "visualizer", label: "Visualizer" }, ]; export default function App() { const route = useHashRoute(); const activePage: PageId = route.page === "viz" ? "visualizer" : "experiments"; const { copyLink, copied } = useCopyLink(); const { dark, toggle } = useTheme(); return (
{/* Top navigation bar */}
Research Dashboard {PAGES.map((page) => ( ))}
{/* Active page */}
Loading...
} > {activePage === "experiments" && } {activePage === "visualizer" && }
); }