File size: 1,426 Bytes
41a71fd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import { Suspense } from 'react';
import { createBrowserRouter, RouterProvider as RouterProviderLib } from 'react-router-dom';
import { MainPage } from '@/pages/MainPage';
import { LoginPage } from '@/pages/LoginPage';
import { ProtectedRoute } from './ProtectedRoute';
import { ContactPage } from '@/pages/ContactPage';
import { NotFoundPage } from '@/pages/NotFoundPage';
import { SomeTestPage } from '@/pages/SomeTestPage';
import { PageLoader } from '@/shared/ui/PageLoader';
import { MainLayout } from '@/app/layouts/MainLayout';
import { useTheme } from '@/app/providers/ThemeProviders';
const router = createBrowserRouter([
{ path: '/login', element: <LoginPage /> },
{
element: <ProtectedRoute />,
children: [
{
path: '/',
element: <MainLayout />,
children: [
{ index: true, element: <MainPage /> },
{ path: 'contact', element: <ContactPage /> },
{ path: 'someTests', element: <SomeTestPage /> },
],
},
],
},
{ path: '*', element: <NotFoundPage /> },
]);
const RouterProvider = () => {
const { theme } = useTheme();
document.body.className = theme;
return (
<Suspense fallback={<PageLoader />}>
<RouterProviderLib router={router} />
</Suspense>
);
};
export default RouterProvider;
|