Files
imphnen-frontend-service/apps/dimentorin/src/main.tsx
T

46 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-03-13 02:03:13 +07:00
import { createRoot } from 'react-dom/client';
import { middleware } from './middleware';
2025-03-13 00:50:45 +07:00
import { StrictMode } from 'react';
2025-03-13 02:03:13 +07:00
import { createBrowserRouter, RouteObject, RouterProvider } from 'react-router';
import {
add404PageToRoutesChildren,
addErrorElementToRoutes,
convertPagesToRoute,
2025-07-13 03:40:23 +07:00
ModalLoginProvider,
2025-03-13 02:03:13 +07:00
QueryProvider,
} from '@imphnen-frontend-service/utils';
import { Toaster } from 'sonner';
2025-03-13 02:03:13 +07:00
import './index.css';
2025-03-13 00:50:45 +07:00
2025-03-13 02:03:13 +07:00
const files = import.meta.glob('./app/**/*(page|layout).tsx');
const errorFiles = import.meta.glob('./app/**/*error.tsx');
const notFoundFiles = import.meta.glob('./app/**/*404.tsx');
const loadingFiles = import.meta.glob('./app/**/*loading.tsx');
2025-03-13 00:50:45 +07:00
2025-03-13 02:03:13 +07:00
const routes = convertPagesToRoute(files, loadingFiles) as RouteObject;
addErrorElementToRoutes(errorFiles, routes);
add404PageToRoutesChildren(notFoundFiles, routes);
const router = createBrowserRouter([
{
...routes,
loader: middleware,
shouldRevalidate: () => true,
},
]);
const rootElement = document.getElementById('root');
if (!rootElement) throw new Error('Failed to find the root element');
createRoot(rootElement).render(
2025-03-13 00:50:45 +07:00
<StrictMode>
2025-03-13 02:03:13 +07:00
<QueryProvider>
2025-07-13 03:40:23 +07:00
<ModalLoginProvider>
<Toaster position="top-right" />
<RouterProvider router={router} />
</ModalLoginProvider>
2025-03-13 02:03:13 +07:00
</QueryProvider>
2025-03-13 00:50:45 +07:00
</StrictMode>
);