feat: add server error logging and tighten workspace isolation
This commit is contained in:
+24
-11
@@ -1,10 +1,12 @@
|
||||
import React from "react";
|
||||
import ReactDOM from "react-dom/client";
|
||||
import { RouterProvider, createRouter } from "@tanstack/react-router";
|
||||
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||
import { QueryClient, QueryClientProvider, MutationCache } from "@tanstack/react-query";
|
||||
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
|
||||
import { toast } from "sonner";
|
||||
import { routeTree } from "./routeTree";
|
||||
import { ThemeProvider } from "@/components/shell/theme-provider";
|
||||
import { bootstrapSession } from "./lib/session";
|
||||
import "./index.css";
|
||||
|
||||
const queryClient = new QueryClient({
|
||||
@@ -15,6 +17,15 @@ const queryClient = new QueryClient({
|
||||
refetchOnWindowFocus: true,
|
||||
},
|
||||
},
|
||||
mutationCache: new MutationCache({
|
||||
// Surface failures that individual mutations don't handle themselves so
|
||||
// silent validation/network errors never go unnoticed.
|
||||
onError: (error, _variables, _context, mutation) => {
|
||||
if (!mutation.options.onError) {
|
||||
toast.error((error as Error).message || "Request failed");
|
||||
}
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
const router = createRouter({ routeTree });
|
||||
@@ -28,13 +39,15 @@ declare module "@tanstack/react-router" {
|
||||
const rootEl = document.getElementById("root");
|
||||
if (!rootEl) throw new Error("Root element not found");
|
||||
|
||||
ReactDOM.createRoot(rootEl).render(
|
||||
<React.StrictMode>
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<ThemeProvider>
|
||||
<RouterProvider router={router} />
|
||||
</ThemeProvider>
|
||||
{import.meta.env.DEV && <ReactQueryDevtools initialIsOpen={false} />}
|
||||
</QueryClientProvider>
|
||||
</React.StrictMode>
|
||||
);
|
||||
bootstrapSession().finally(() => {
|
||||
ReactDOM.createRoot(rootEl).render(
|
||||
<React.StrictMode>
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<ThemeProvider>
|
||||
<RouterProvider router={router} />
|
||||
</ThemeProvider>
|
||||
{import.meta.env.DEV && <ReactQueryDevtools initialIsOpen={false} />}
|
||||
</QueryClientProvider>
|
||||
</React.StrictMode>
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user