/* eslint-disable react-refresh/only-export-components -- route config; edits trigger a full reload anyway */
import { createBrowserRouter, type RouteObject } from 'react-router-dom';
import { lazy, Suspense } from 'react';
import { PrivateRoute } from '@/route/PrivateRoute.tsx';
import { PublicRoute } from '@/route/PublicRoute.tsx';
import { AuthProvider } from '@/providers/authProvider.tsx';
import { ToastContainer } from 'react-toastify';
import 'react-toastify/dist/ReactToastify.css';
import { LoadingSpinner } from '@/components/LoadingSpinner';
import { RouteError } from '@/components/RouteError';
// Lazy load page components
const SignInPage = lazy(() => import('@/pages/SignInPage.tsx').then(module => ({ default: module.SignInPage })));
const SignUpPage = lazy(() => import('@/pages/SignUpPage.tsx').then(module => ({ default: module.SignUpPage })));
const HomePage = lazy(() => import('@/pages/HomePage.tsx').then(module => ({ default: module.HomePage })));
const ChannelsPage = lazy(() => import('@/pages/ChannelsPage.tsx').then(module => ({ default: module.ChannelsPage })));
const PlatformsPage = lazy(() => import('@/pages/PlatformsPage.tsx').then(module => ({ default: module.PlatformsPage })));
const ArchitecturesPage = lazy(() => import('@/pages/ArchitecturesPage.tsx').then(module => ({ default: module.ArchitecturesPage })));
const StatisticsPage = lazy(() => import('@/pages/StatisticsPage.tsx').then(module => ({ default: module.StatisticsPage })));
const ReportsPage = lazy(() => import('@/pages/ReportsPage.tsx').then(module => ({ default: module.ReportsPage })));
const SettingsPage = lazy(() => import('@/pages/SettingsPage.tsx').then(module => ({ default: module.SettingsPage })));
const RootLayout = ({ children }: { children: React.ReactNode }) => (
}>
{children}
);
const routes: RouteObject[] = [
{
path: '/',
element: ,
},
{
path: '/applications',
element: ,
},
{
path: '/applications/:appName',
element: ,
},
{
path: '/channels',
element: ,
},
{
path: '/platforms',
element: ,
},
{
path: '/architectures',
element: ,
},
{
path: '/statistics',
element: ,
},
{
path: '/reports',
element: ,
},
{
path: '/settings',
element: ,
},
{
path: '/settings/tuf',
element: ,
},
{
path: '/settings/tokens',
element: ,
},
{
path: '/signin',
element: ,
},
{
path: '/signup',
element: ,
},
];
export const router = createBrowserRouter(
routes.map(route => ({ ...route, errorElement: })),
{ basename: import.meta.env.BASE_URL },
);