55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
import { RouterProvider, createRouter } from '@tanstack/react-router';
|
|
import { StrictMode } from 'react';
|
|
import ReactDOM from 'react-dom/client';
|
|
|
|
// Import the generated route tree
|
|
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
|
import { routeTree } from './routeTree.gen';
|
|
|
|
// Import i18n
|
|
import './i18n';
|
|
|
|
// Font
|
|
import '@fontsource/roboto/300.css';
|
|
import '@fontsource/roboto/400.css';
|
|
import '@fontsource/roboto/500.css';
|
|
import '@fontsource/roboto/700.css';
|
|
|
|
// Query Client
|
|
const queryClient = new QueryClient();
|
|
|
|
// Create a new router instance
|
|
const router = createRouter({
|
|
routeTree,
|
|
context: {
|
|
queryClient,
|
|
},
|
|
defaultPreload: 'intent',
|
|
// Since we're using React Query, we don't want loader calls to ever be stale
|
|
// This will ensure that the loader is always called when the route is preloaded or visited
|
|
defaultPreloadStaleTime: 0,
|
|
basepath: process.env.NODE_ENV === 'development' ? 'phpCourse/exam/dist' : '/phpCourse/exam',
|
|
});
|
|
|
|
// Register the router instance for type safety
|
|
declare module '@tanstack/react-router' {
|
|
interface Register {
|
|
router: typeof router;
|
|
}
|
|
}
|
|
|
|
// Render the app
|
|
const rootElement = document.getElementById('root')!;
|
|
if (!rootElement.innerHTML) {
|
|
const root = ReactDOM.createRoot(rootElement);
|
|
root.render(
|
|
<StrictMode>
|
|
<QueryClientProvider client={queryClient}>
|
|
<RouterProvider router={router} />
|
|
<ReactQueryDevtools initialIsOpen={false} />
|
|
</QueryClientProvider>
|
|
</StrictMode>
|
|
);
|
|
}
|