ATProto forum built with ESAV
at main 2.0 kB view raw
1import { StrictMode } from "react"; 2import ReactDOM from "react-dom/client"; 3import { RouterProvider, createRouter } from "@tanstack/react-router"; 4 5// Import the generated route tree 6import { routeTree } from "./routeTree.gen"; 7 8import "./styles.css"; 9import reportWebVitals from "./reportWebVitals.ts"; 10import { OAuthProvider } from "./providers/OAuthProvider.tsx"; 11import { PersistentStoreProvider } from "./providers/PersistentStoreProvider.tsx"; 12import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; 13import { ESAVLiveProvider } from "./esav/ESAVLiveProvider.tsx"; 14 15const queryClient = new QueryClient(); 16const ESAV_WEBSOCKET_URL = 'wss://esav.whey.party/xrpc/party.whey.esav.esSync'; 17 18// Create a new router instance 19const router = createRouter({ 20 routeTree, 21 context: { 22 queryClient, 23 }, 24 defaultPreload: "intent", 25 scrollRestoration: true, 26 defaultStructuralSharing: true, 27 defaultPreloadStaleTime: 0, 28}); 29 30// Register the router instance for type safety 31declare module "@tanstack/react-router" { 32 interface Register { 33 router: typeof router; 34 } 35} 36 37// Render the app 38const rootElement = document.getElementById("app"); 39if (rootElement && !rootElement.innerHTML) { 40 const root = ReactDOM.createRoot(rootElement); 41 root.render( 42 //<StrictMode> 43 <ESAVLiveProvider url={ESAV_WEBSOCKET_URL}> 44 <PersistentStoreProvider> 45 <OAuthProvider> 46 <QueryClientProvider client={queryClient}> 47 {/* Pass the router instance with the context to the provider */} 48 <RouterProvider router={router} /> 49 </QueryClientProvider> 50 </OAuthProvider> 51 </PersistentStoreProvider> 52 </ESAVLiveProvider> 53 //</StrictMode> 54 ); 55} 56 57// If you want to start measuring performance in your app, pass a function 58// to log results (for example: reportWebVitals(console.log)) 59// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 60reportWebVitals();