import { Link, Outlet, createRootRoute, createRoute, createRouter } from "@tanstack/react-router"; const rootRoute = createRootRoute({ component: RootLayout, }); const indexRoute = createRoute({ getParentRoute: () => rootRoute, path: "/", component: HomePage, }); const machinesRoute = createRoute({ getParentRoute: () => rootRoute, path: "/machines", component: MachinesPage, }); const routeTree = rootRoute.addChildren([indexRoute, machinesRoute]); export const router = createRouter({ basepath: __PREFIX__, routeTree, }); declare module "@tanstack/react-router" { interface Register { router: typeof router; } } function RootLayout() { return (
); } function HomePage() { return (

Headplane SPA

This is the one-way SPA shell. Data should move to raw Fate views and actions.

); } function MachinesPage() { return (

Machines

First migration target: replace the React Router loader/action/SSE model with raw Fate.

); }