fabro/apps/fabro-web/app/entry.tsx
Bryan Helmkamp a1f032e166
refactor(web): move server state to SWR
Replace React Router loader/action state paths with SWR query and mutation hooks.

Add targeted run and board EventSource managers that invalidate SWR keys, and refresh embedded SPA assets.
2026-04-25 07:16:41 -04:00

38 lines
976 B
TypeScript

import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { createBrowserRouter, RouterProvider } from "react-router";
import { SWRConfig } from "swr";
import { installRoutes } from "./install-router";
import { apiFetcher } from "./lib/api-client";
import { resolveFabroMode } from "./mode";
import { routes } from "./router";
declare global {
interface Window {
__FABRO_MODE__?: string;
}
}
const router = createBrowserRouter(
resolveFabroMode(window.__FABRO_MODE__) === "install" ? installRoutes : routes,
);
const rootElement = document.getElementById("root");
if (!rootElement) {
throw new Error("Missing #root element");
}
createRoot(rootElement).render(
<StrictMode>
<SWRConfig
value={{
fetcher: apiFetcher,
revalidateOnFocus: false,
dedupingInterval: 2000,
shouldRetryOnError: false,
}}
>
<RouterProvider router={router} />
</SWRConfig>
</StrictMode>,
);